2012-06-21 74 views
0

我在函數調用GDB步入動態功能

s->method->ssl_read(s,buf,num) 

由動態函數指針設置OpenSSL的庫調試段錯誤。我想踏入它時,它指向

ssl23_read 

但是設定ssl23_read斷點不起作用。我不確定調試如何與動態函數指針一起工作,對我來說直觀的答案可能是「不同」或「不」。在這種情況下你會使用什麼樣的調試策略?

順便說一句,只是交換呼叫不起作用,或者至少不容易 - OpenSSL庫有一些檢查,以確保您不直接調用該函數。

回答

0

設置在ssl23_read斷點不起作用

不以何種方式工作?

如果GDB設置斷點,但斷點永遠不會觸發,那麼無論

  1. 功能實際上並不叫,或
  2. 有廣發行的bug,它錯誤地設置斷點。

如果是2,請檢查該錯誤是否仍存在於最新的GDB中,併爲其提供錯誤報告。作爲一種解決方法,break * &ssl23_read可能會設置斷點,使其啓動將啓動

+0

實際上,它看起來像(1)。我錯誤地確定了它設置的功能,只是一個gdb「打印」命令告訴我正確的一個。事實證明,我的錯誤是陌生的。 – djechlin