我正在处理控制汽车的程序。 该计划规模相当大,由其他人制作。 所以我完全不了解它是如何工作的。 但我必须应用它并开车。
我遇到的问题是程序经常停顿,没有错误,没有分段。
如果它崩溃了,我可以用gdb或类似的东西追踪原因。
但它没有崩溃,它默默地停止。
我如何找到原因?
答案 0 :(得分:1)
从您的描述 - 程序默默地停止 - 我理解您的程序简单而优雅地退出,但不是从您预期的流程。
这可能由于多种原因而发生 - 例如,您的程序可能会进入非法流程,某些子组件(如标准库或其他库)决定程序应该退出,从而调用c-runtime exit()
或直接调用Kernel32!ExitProcess()
。
调试此流程的最佳方法是附加调试器并在这两种方法上设置断点,并找出谁在调用它们。
如果你的意思是你的程序进入死锁并暂停,那么你还需要附加一个调试器并找出被卡住的人。