我的程序不定时,不定机器上发生崩溃。
没有visual studio的会提示*.exe遇到问题需要关闭。我们对此引起的不便表示抱歉....
发送错误报告  不发送。这个框。对于有visual的,提示*.exe[7800]中发生为处理的win32异常。 下面就是 要使用选定的调试器进行调试吗?
是 否。
选择是,出现了汇编。然后堆栈里面是
coord.dll! 0003a2ed7()
[下面的框架可能不正确或缺失,没有为coord.dll加载符号
user32.dll! 77d1b53f()
coord.dll! 0003a3ede()
....

解决方案 »

  1.   

    你这种描述,确实很难
    估计csdn上没几个人能答出来
      

  2.   

    先看看调试器里debug版出不出问题,如果debug也出现,那调试器会告诉你在哪一行代码死机的。
    如果不出现,那就比较头疼了,可以试试release里加调试信息,然后调试release,如果也不出现,那就把map文件编出来,然后从崩溃地址找吧。总之必须找到死机的那行代码,再在附近找问题。
      

  3.   

    在coord.dll里崩溃了
    而且coord.dll没有调试符号
    仔细检查下调用coord.dll的接口函数参数
      

  4.   

    1.崩溃的时候看能不能收集到dump,然后结合pdb文件等,查看你的crash的引起call statck,再检查你的代码
    2.增加一些log日志等,当crash时,多分析分析log定位问题
      

  5.   

    coord.dll是你自己写的还是引用他人的?如果是自己写的话,建议你在dll中内嵌log吧。
    如果coord.dll是他人提供的,那你就在所有引用coord.dll的引出函数的地点嵌入log,这样或许能够提供有用的信息。
    因为如果不是在调试状态下,仅凭你提供的这些信息是不足以判断问题的发生的原因的。
      

  6.   

    coord.dll 是你的模块吗?如果是那么无论是release还是debug版本都应该生成对应的符号信息文件(pdb),如果没有符号文件的话这种情况只有通过日志或其他方法处理,因为如果调用堆栈顶部符号加载失败的话,下部的符号分析是不可信的远程调试是一种方法,也可以用工具抓到 dump文件到本地分析
      

  7.   

    请使用BugTrap
    * This is a part of the BugTrap package.
     * Copyright (c) 2005-2007 IntelleSoft.
    google之,pls。
      

  8.   

    你是不是在其他地方,比如定时器里面,载入 coord.dll 没成功但是有调用了他的句柄对它进行直接操作?
      

  9.   

    对于这类崩溃问题,搜集DUMP是解决问题所必须的。可以使用微软调试工具包里面adplus.vbs挂接程序运行,崩溃时会搜集DUMP并保存下来,然后配合程序的PDB以及WINDOWS的PDB,尝试恢复完整的调用堆栈。
    有了调用堆栈,一切就好办了。
      

  10.   

    TO 22楼,工程设置里面,可以给release版本加上调试信息
      

  11.   

    调试。release也可以调试的,上网找一下怎样设置release调试吧这样的问题一般是指针,内存之类的错误看看你的coord.dll这个dll里面有什么错误吧,编译这个dll的时候生成pdb文件用于调试
      

  12.   

    在网上下载一个BoundsChecker 对源代码进行调试,找出崩溃的地方!这个工具很好用的,检查效率很高,专门正对这种问题