簡體   English   中英

在試圖為source_file.c的可執行文件執行gdb的目錄中,是否必須存在source_file.c?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM