调试程序的时候,常常弹出诸如程序执行了非法操作的对话框,对于这样的bug。
应该怎样去定位到源程序,有没有相关的介绍文章。如果弹出的非法操作显示是系统自带的DLL中触发的异常,对于此类又应该怎样去定位拉?

解决方案 »

  1.   


    ALT + 7 打开call stack窗口,可以方便地定位到调用层次中上层函数,
    一般问题都出在我们自己的代码里头。
      

  2.   

    再call stack窗口中,我发现是再调用PreCreateWindow的时候出错的,并且出错的时候,已经不是我写的PreCreateWindow了,已经是系统的PreCreateWidnwo函数了,这种应该怎么定位啊。
      

  3.   

    在callstack的窗口中.找到和你寫的程序,最近的一條出錯語句.那就是你程序的問題所在.
    如果沒有,你可以在對話框窗口消失的時候,出現的斷點地方進行查看(移動鼠標,看看某些變量指針是否為空,或者其他類似的問題).
    還有一個要考慮的,就例如在窗口沒有生成的時候,刷新這個窗口上的東西,這個酒會出錯.