使用MSYS2环境在Windows上使用QT和Boost Logger构建的Windows服务中的崩溃调试时,几乎有一次。当我在退出之前立即停止程序时,真正的主要问题就出现了。该程序并不成功,并且抛出了这些坏男孩之一:
如果我在gdb中运行它,则可能是另外一个故事。我在windbg中打开故障转储,并获取了一些信息,但是由于未导出符号,因此它确实很神秘。
当我的程序(称为服务)调用日志时,我看到一些问题。但是我在这里无法做任何事情。如何获得有用的东西,以便最终解决此问题?
非常感谢!
答案 0 :(得分:0)
似乎最简单,最自然的方法是将gdb附加到正在运行的进程。我只是以管理员身份运行msys2,然后运行命令
gdb service.exe -p [processID]
任务管理器给了我进程ID。附加该过程后,我就使用了命令
continue
使其继续运行。然后我让它崩溃了,gdb完美地给了我回溯。
我已经对此进行了搜索,这比尝试让windbg读取g ++生成的符号或读取汇编代码要简单得多。希望这可以帮助遇到同样问题的人。
参考: