我有許多關於gdb和objdump的問題。使用gdb和objdump進行調試
地址在objdump的
如果我做的:objdump的-d二進制文件名,然後我得到了包括這部分輸出:
Disassembly of section .text:
080484a0 <_start>:
80484a0: 31 ed xor %ebp,%ebp
80484a2: 5e pop %esi
80484a3: 89 e1 mov %esp,%ecx
我在承擔這些數字第一列是地址?但我不明白如何知道這些地址,因爲當一個進程被加載時,它被放置在內存中的隨機位置,這意味着代碼每次都有不同的地址?還是這些地址相對於進程的地址空間?
什麼是在< _start>下列出的值?
GDB通過代碼
踩着我,而我沒有源代碼的二進制文件。我想通過該程序,但沒有符號信息。我無法在函數名稱或亞麻布上設置斷點。我試圖在地址上設置一個斷點,這個工作,但我不知道如何一步一步地通過程序。當我這樣做: (gdb)s 或 (gdb)n 它說它沒有線路信息,只是運行整個功能。 有沒有一種方法可以逐步完成它,或者單步執行裝配說明?