2016-08-14 71 views
1

我想使用GDB在NASM彙編代碼中的本地標籤上打破。在使用GDB進行NASM組裝時使用本地標籤打破

發出以下命令產量輸出:

(gdb) break *start.label1 + 217 
    Attempt to extract a component of a value that is not a structure. 

這裏我的代碼是這樣的:

global _start 
_start: 
... 
.label1: 
... 

我怎樣才能在當地.label1打破?

+1

要打破一個標籤,不應該像'b main'那樣對它解引用'b start.label1'。也許'b(start.label1 + 217)'會起作用。有了解引用,你可能需要'b *(start.label1 + 217)'。但是,如果gdb在符號名稱內部支持'.',IDK就是IDK的實際符號名稱。您可能必須「b * 0x ...'並複製/粘貼地址。對不起,沒有時間寫答案。 –

+0

感謝您的建議:) – Shuzheng

+1

將帶有句號的標籤放在表達式中的單引號內。像'b *'start.label1'+ 217' –

回答

0

拆卸調用本地標籤的函數,選擇地址並按照通常的地址添加中斷,而不是標籤名稱。您也可以通過本地標籤的地址進行反彙編。