2017-03-04 54 views
-2

在我的彙編代碼,我有這樣一行解碼組件回調

callq *%rcx 

我明白,這調用回調函數通過RCX指向。然而,我不知道這個回調在哪裏/哪些地方被實現/它做了什麼。我怎麼解決這個問題?

+0

使用**調試器** –

+0

@ user3847447'%rcx'表示一個CPU寄存器。如果沒有以前的其他命令顯示加載的顯式地址 - 使用調試器是真正的唯一方法。 (我猜在這種情況下「頭部調試」不是一個選項......) – Scheff

+0

查看'%rcx'指向哪個地址並反彙編該地址的內存。 – fuz

回答

0

我該如何解決這個問題?

(gdb) x/10i $rcx 

會告訴你將開始CALL後立即執行什麼樣的代碼。如果該代碼有一個標籤(即是指定函數的一部分),GDB也會顯示出來,並且你可以猜測(或者詢問鏈接器的代碼來自哪裏)。

如果該代碼沒有標籤,就沒有簡單的方法找出原點。如果您可以重新鏈接可執行文件,鏈接器-Wl,--print-map可以提供幫助。