[英]Is source_file.c necessary to present in the directory, where we trying to do gdb for the executable of source_file.c?
我正在嘗試使用gdb作為source_file.c的最終可執行文件(“列表”命令)。
它沒有按我預期的那樣工作,因為我在該目錄中只有一個可執行文件,而沒有source_file.c
。 這是預期的行為嗎?
場景如下:
(gdb) b main
(gdb) list
1 source_file.c: No such file or directory.
in source_file.c
因此,是否有必要在該pwd中包含source_file.c
,以便嘗試為source_file.c
的可執行文件啟動gdb?
為調試而編譯的二進制文件中添加了有助於調試器的其他信息。 這包括每個指令和符號的文件名和行號。 但是它不包括源代碼。
如果要進行源代碼級調試,則必須具有源文件,但不必位於同一目錄中。 您可以使用“ directory some_dir_name”命令指定包含源文件的目錄。
沒有源文件,調試器仍然是有用的工具。 您仍然可以做幾乎所有事情。 您可以設置斷點,反匯編代碼,檢查內存等。但是這樣做不會顯示代碼或變量名。 一種無效的命令是“列表”。 等效的裝配是“拆卸”。
有幾個有效的理由可以在沒有源文件的情況下進行調試。 我花時間在表面上只有一個匯編調試器的OS上工作。 但是我可以訪問源以指導自己的方式。 但是在當今世界,它通常更容易避免。
GDB還支持遠程調試。 這將允許您在具有代碼的計算機上運行gdb。
如前所述,文檔說明具有很好的描述: https ://www.sourceware.org/gdb/current/onlinedocs/gdb/Source-Path.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.