我有一個項目在VC++ 6.0中有一個EXE和一個InProc COM DLL。我希望能夠在InProc COM DLL中的某處放置斷點,但VC++不允許我設置斷點。調試InProc COM DLL
我有這個DLL的源代碼,但我想不出如何在代碼中放置斷點並調試它?
有人可以幫助我。
我有一個項目在VC++ 6.0中有一個EXE和一個InProc COM DLL。我希望能夠在InProc COM DLL中的某處放置斷點,但VC++不允許我設置斷點。調試InProc COM DLL
我有這個DLL的源代碼,但我想不出如何在代碼中放置斷點並調試它?
有人可以幫助我。
這樣
此處需要「其他dll」設置的原因是因爲您的進程內服務器只有在其實例CoCreated時纔會加載。因此,調試器不會加載其PDB文件,並且將源文件視爲未知文本文件,因此它們中的斷點處於非活動狀態(白色)。
有兩件事情你可以看看
/Od
優化)並使用新的DLL及其PDB文件。不知道這是否會在VC6工作,但你可以嘗試,你想要的代碼打破_asm int 3
,這應該引起你的代碼中設置斷點,並允許您調試。
自從我使用COM但IIRIC之後已經有一段時間了,在您的COM項目中將您的可執行文件配置爲啓動應用程序。它應該工作(對不起,我沒有VC++這裏安裝了6.0 :()。
如果它不工作,你可以嘗試將調試器附加到正在運行的應用。
在這兩種情況下,請確保你在你的COM服務器的完全調試信息。
希望這有助於。
你有沒有與dll相同的文件夾中的COM DLL的.pdb文件? – sharptooth 2010-06-01 10:45:26
很可能它可能在另一個地方 – 2010-06-01 10:48:37
它應該在同一個文件夾中,它應該來自相同的編譯。 – sharptooth 2010-06-01 10:49:18