调试使用mingw / msys2构建的Windows服务

时间:2018-06-22 15:30:39

标签: c++ windows debugging mingw msys2

使用MSYS2环境在Windows上使用QT和Boost Logger构建的Windows服务中的崩溃调试时,几乎有一次。当我在退出之前立即停止程序时,真正的主要问题就出现了。该程序并不成功,并且抛出了这些坏男孩之一:

Windows crack info

如果我在gdb中运行它,则可能是另外一个故事。我在windbg中打开故障转储,并获取了一些信息,但是由于未导出符号,因此它确实很神秘。

WinDBG image

当我的程序(称为服务)调用日志时,我看到一些问题。但是我在这里无法做任何事情。如何获得有用的东西,以便最终解决此问题?

非常感谢!

1 个答案:

答案 0 :(得分:0)

似乎最简单,最自然的方法是将gdb附加到正在运行的进程。我只是以管理员身份运行msys2,然后运行命令

gdb service.exe -p [processID]

任务管理器给了我进程ID。附加该过程后,我就使用了命令

continue

使其继续运行。然后我让它崩溃了,gdb完美地给了我回溯。

我已经对此进行了搜索,这比尝试让windbg读取g ++生成的符号或读取汇编代码要简单得多。希望这可以帮助遇到同样问题的人。

参考:

How to attach a process in gdb