相关疑难解决方法(0)

我的程序崩溃时如何自动生成堆栈跟踪

我正在使用GCC编译器在Linux上工作.当我的C++程序崩溃时,我希望它能自动生成一个堆栈跟踪.

我的程序由许多不同的用户运行,它也可以在Linux,Windows和Macintosh上运行(所有版本都使用编译gcc).

我希望我的程序能够在崩溃时生成堆栈跟踪,并且在用户下次运行它时,它会询问他们是否可以将堆栈跟踪发送给我,以便我可以追踪问题.我可以处理向我发送信息,但我不知道如何生成跟踪字符串.有任何想法吗?

c++ crash gcc assert stack-trace

561
推荐指数
20
解决办法
33万
查看次数

是否有陷阱"陷阱"?

我知道,给予足够的情况下,人们可以希望建设性地使用(即恢复)从段错误条件.

但是,努力值得吗?如果是,在什么情况下?

linux segmentation-fault

5
推荐指数
4
解决办法
3103
查看次数

在没有源代码的情况下调试/绕过BSOD

你好,祝你好运.

需要一点帮助:

情况:
我有一个模糊的DirectX 9应用程序(名称和应用程序的详细信息与问题无关),导致所有nvidia显卡(GeForce 8400GS及以上版本)的蓝屏死机,因为某些驱动程序版本.我认为问题是由DirectX 9调用或触发驱动程序错误的标志间接引起的.

目标:
我想通过编写代理dll来追踪违规的标记/函数调用(为了好玩,这不是我的工作/作业)并绕过错误条件.我已经有一个完成的代理dll,它为IDirect3D9,IDirect3DDevice9,IDirect3DVertexBuffer9和IDirect3DIndexBuffer9提供包装器,并提供Direct3D调用的基本日志记录/跟踪.但是,我无法确定导致崩溃的功能.

问题:

  1. 没有源代码或技术支持.没有任何帮助,没有其他人会解决问题.
  2. 内核产生的内存转储没有帮助 - 显然在nv4_disp.dll中发生了访问冲突,但是我不能使用stacktrace去IDirect3DDevice9方法调用,而且有可能异步发生错误.
  3. (主要问题)由于大量的Direct3D9Device方法调用,我无法将它们可靠地记录到文件或网络中:
    1. 即使没有刷新,登录到文件也会导致显着减速,因此系统BSOD会丢失日志的所有最后内容.
    2. 通过网络登录(使用UDP和WINSOck sendto)也会导致显着减速,并且不能异步完成(异步数据包在BSOD上丢失),即使同步发送,数据包(崩溃周围的数据包)有时也会丢失.
    3. 当应用程序通过记录例程"减慢"时,BSOD不太可能发生,这使得跟踪它更难.

问题:
我通常不会编写驱动程序,也不会进行这种级别的调试,所以我觉得我缺少一些重要的东西,比使用自定义日志记录机制编写IDirect3DDevice9代理dll有更简单的方法来追踪问题.它是什么?诊断/处理/修复问题的标准方法是什么(没有源代码,COM接口方法触发BSOD)?

Minidump分析(WinDBG):

Loading User Symbols
Loading unloaded module list
...........
Unable to load image nv4_disp.dll, Win32 error 0n2
*** WARNING: Unable to verify timestamp for nv4_disp.dll
*** ERROR: Module load completed but symbols could not be loaded for nv4_disp.dll
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

Use !analyze -v to get …

c++ windows debugging directx bsod

3
推荐指数
2
解决办法
1192
查看次数