1、無法單步調試
在調試多線程程序的時候,如果遇到斷點能斷下來,但是一按F7/F8程序就運行起來了,這種情況多半是線程被掛起了
首先是去看看線程窗口,是不是有線程被掛起來,如果有,右鍵-->Resume all thread,然後就可以繼續單步調試了
2、程序運行到一半,OD就已經退出,進程終止
這種情況一般是程序有一些反調試手段,我當時的情況是有兩個線程,總是在第一個線程結束的時候OD就終止了,但是我需要分析的數據都在第二個線程裏面,所以當時糾結了好久,試過下各種斷點,包括斷在創建線程、_exitthread之類的地方,但是還是無濟於事。再說明一下,我當時是在64位機上面調試,我調試的程序進程B是由另一個程序進程A啓動的,在OD中是用附加了B進程。
解決辦法就是:原版OD+StrongOD+SharpOD 64,因爲StrongOD很多功能可能在64位機器上面無法正常執行其功能,需要用到SharpOD來執行主要的反調試功能。
用上面的配置把程序加載之後,就不會出現運行到一半OD就終止了,能夠運行到程序結束。
StrongOD配置:
SharpOD配置: