簡體   English   中英

list命令沒有在gdb中加載匯編程序的源代碼

[英]List command is not loading source code of assembly program in gdb

我正在使用 gdb [7.11.1] kali linux 32 位,當我使用 list 命令在 gdb 中加載我的匯編程序的源代碼時,它顯示以下錯誤消息:'沒有加載符號表。 使用“文件”命令'

我試過命令如下:

list list line_number

在這兩種情況下,錯誤是相同的。

請幫我

謝謝! 提前

我使用list命令來加載程序集的源代碼

List命令不執行任何操作 而是列出了GDB已經加載的源。

as -o progname.o progname.s

就您而言,GDB不會加載任何源,因為您在編譯程序時沒有任何調試信息。 您可能想要:

as -g -o progname.o progname.s

來自人為

  -g
   --gen-debug
       Generate debugging information for each assembler source line
       using whichever debug format is preferred by the target.  This
       currently means either STABS, ECOFF or DWARF2.

當我試圖調試我的 c 代碼以解決緩沖區溢出問題時,我遇到了同樣的問題。 由於干凈編譯而沒有生成任何調試信息,因此會出現該錯誤。 對於 c 程序,而不是像gcc program.c那樣正常編譯嘗試運行gcc -g -fno-stack-protector -z exec stack -o buffer program.c

-g告訴 GCC 為 GDB 添加額外信息
-fno-stack-protector標志關閉堆棧保護機制
-z execstack ,它使堆棧可執行

這個命令將創建一個你的 c 程序的buffer二進制文件,因此它將滿足在 gdb 中運行 list 命令的所有條件。
使用gdb ./buffer啟動 gdb,然后鍵入list命令。 它會起作用!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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