遠程調試續--DLL篇

在上一篇文章中提到exe的遠程調試後,有人問怎麼遠程調試動態庫,所以再發個遠程調試的續篇補充一下。

 

        基本流程還是一樣的,只不過調試動態庫的話,除了需要動態庫本身外,還需要調用該動態庫的執行程序。這裏假設要調試的動態庫爲TestDLL.dll,其中導出一個函數int Add(int a, int b);在可執行程序TestCSDN.exe中會調用TestDll中的Add函數。

 

        調試步驟如下:

        1.在編譯完動態庫TestDll.dll和可執行程序TestCSDN.exe之後,將這倆複製到目標機器上,比如目標機器的D:/DebugEasy/RemoteDebugDll目錄下。

       

        2.設置好本機和目標機器的遠程調試選項

        參見前一篇blog: VC++6.0調試篇:遠程調試http://blog.csdn.net/coding_hello/archive/2008/11/23/3357384.aspx

 

        3.在本機打開TestDll工程,在Build --> Project and Setting菜單中作設置:

       

本機遠程調試動態庫

 

        上面是本機中TestCSDN.exe所在的位置,下面是遠程目標機器上程序所在的位置。注意,這裏都是設置的可執行文件的名字,而不是我們要調試的動態庫的名字。

 

        4.點OK後,在Add函數中打個斷點,然後按F5開始調試。會提示要定位動態庫位置,第一個一般是NTDLL.dll,如圖:

Host_For_Dll_Symbol

        如果我們是調試EXE,那麼去掉"Try to locate other DLLs"選項,點OK就行了。但是我們這次的目標是調試TestDLL.dll,所以請有點耐心,直接點OK。可能有很多,直到看到你想要的:

Host_For_TargetDll_Symbol

看到沒,提示要目標機器上的Testdll.dll文件在本機中的位置,點Browse,選中本機中的位置:

Locate_Local_Module

找到本機中的位置後,點"打開",剩下的DLL就都忽略吧,信息已經足夠了。F5之~

 

        6.守得雲開見月明:

Debug_In_DLL

        斷點生效了噢,都能看到變量a的值是100了。

 

        嗯,過程應該比較清楚了吧,bless~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章