1、調(diào)試dll的概述
由于dll本身是不可執(zhí)行的,所以給開(kāi)發(fā)和調(diào)試工作帶來(lái)了一定得難度,在VC++中如何調(diào)試dll程序呢?提供了兩種解決辦法
2、調(diào)試dll的技巧
打開(kāi)應(yīng)用程序的工程,選擇【Project】—>【Settings】菜單命令,在彈出對(duì)話框的“Debug”標(biāo)簽下,“Category”選擇“General”,在“Program Arguments”中指定應(yīng)用程序命令行參數(shù)。“Category”選擇“Additional dlls”,輸入調(diào)試的dll文件,如果使用遠(yuǎn)程調(diào)試,要給出完整的網(wǎng)絡(luò)路徑。這個(gè)dll必須編譯成Debug版本的程序,包含有調(diào)試信息。這樣盡管dll源不是這個(gè)工程的組成部分,也可以在應(yīng)用程序和dll的源程序中設(shè)置斷點(diǎn)。同時(shí)使用應(yīng)用程序的工程來(lái)調(diào)用dll
在同一個(gè)工程區(qū)內(nèi)打開(kāi)dll和應(yīng)用程序,這樣就要求把dll程序的工程添加到應(yīng)用程序的工作區(qū)中。為了能夠調(diào)試dll程序,兩個(gè)工程都是用相同版本的Debug。在【Project】—>【Settings】對(duì)話框的“Link”標(biāo)簽下選中“Generate debug info”。在【Project】—>【Settings】對(duì)話框的“Debug”標(biāo)簽下,“Category”選擇“Additional DLLs”,將要調(diào)試的dll文件加入其中。同時(shí),在【Project】—>【Settings】對(duì)話框中選擇應(yīng)用程序的工程依賴于dll的工程,在dll程序調(diào)用時(shí),編譯用戶應(yīng)用程序,可以根據(jù)文件新舊比較把dll的工程也編譯連接。dll工程調(diào)用后,編譯連接生成新版本調(diào)試信息,為了操作方便可以在dll工程的“Project Settings”對(duì)話框中的“Post-Build Step”標(biāo)簽下加上將編譯好的dll復(fù)制到應(yīng)用程序訪問(wèn)到的目錄的一個(gè)命令。每編譯一次,就要執(zhí)行一次這個(gè)命令,將最新生成的dll文件提交給應(yīng)用程序是用。
通過(guò)上面的設(shè)置就可以通過(guò)應(yīng)用程序來(lái)對(duì)dll程序進(jìn)行調(diào)試了,在調(diào)試過(guò)程中,可以從應(yīng)用程序單步跟蹤到dll工程中,在dll中設(shè)置斷點(diǎn),在應(yīng)用程序中調(diào)用dll,執(zhí)行到此時(shí),也會(huì)中斷,從而達(dá)到了調(diào)試的目的。