能力值:
( LV2,RANK:10 )
|
-
-
2 楼
在MFC DLL中,可能出错的地方::AfxMessageBox(L"这里输出某些变量的值或者显示一下执行到哪个位置了");
找出问题之后再修改,然后把::AfxMessageBox注释
或者就用GOOGLE出来的调试方法。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
vs有其他进程调试,可以调试其他进程中的自己的DLL,在调试-进程里,选中目标进程就可以在其他进程中调试了。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
这个不管用,因为暴异常的地方是在MFC源码里头,而不是我的MFC dll代码里头(dll的代码哪里出问题,这个我可以确定,因为有自己的SEH跟着)
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
我试了下,VC6版本.Build->Start to debug->Attach to process,选择目标进程后,vc已经附加到目标进程,感觉和OD一样,无法调试时显示源码:(
试过被调试的dll选用debug版本还是一样,请问你是怎么让他调试时显示源码的呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
我通常的做法是每调用一个函数就调用一次AfxMessageBox,并且给它编号,这样,我就大概知道调用的哪个函数出了问题。
如果想调试exe那样直接对原参数信息以及变量信息进行查看, 这个方法的确不太管用。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
自己写个辅助LOG类吧,然后用宏控制是否记录LOG文件,感觉可能会出错的地方打印相应变量的状态。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
看stack调用顺序
|
|
|