如何在Windows上找到导致程序崩溃的原因?

时间:2016-04-17 16:29:30

标签: c++ sfml

我正在将我在Linux上运行的SFML项目移植到Windows。

当我启动程序时,它会立即退出并出现此错误:

Unhandled exception at 0x73E4C9F5 in name: 0xC0000005: Access violation executing location 0x00000000.

问题是,我的程序在其他用户的PC上运行正常......

它在创建我的窗口时崩溃。

有任何想法如何才能找到我的程序在PC上崩溃的原因? Windows中是否有任何类型的gdb?

这是我的调用堆栈:

>   00000000()  Unknown
    [Frames below may be incorrect and/or missing]  
    atiglpxx.dll!731238e7() Unknown
    atiglpxx.dll!73123770() Unknown
    [External Code] 
    atiglpxx.dll!73124597() Unknown
    [External Code] 
    The-Duck-Reborn.exe!00c7cb5d()  Unknown
    [External Code] 
    The-Duck-Reborn.exe!00c7b60d()  Unknown
    The-Duck-Reborn.exe!00c7ae61()  Unknown
    The-Duck-Reborn.exe!00c78f2a()  Unknown
    The-Duck-Reborn.exe!00cd33e3()  Unknown
    The-Duck-Reborn.exe!00c78048()  Unknown
    The-Duck-Reborn.exe!00c76e50()  Unknown
    The-Duck-Reborn.exe!00c644ee()  Unknown
    The-Duck-Reborn.exe!00c5b9f0()  Unknown
    [External Code] 
    The-Duck-Reborn.exe!00c86745()  Unknown
    [External Code] 
编辑:所有SFML程序我尝试启动崩溃...也许lib缺少但是如何找到哪个?

2 个答案:

答案 0 :(得分:1)

在调试器下运行它,看看发生访问冲突时它正在做什么。

然后再做一次,看看为什么变量仍然是空指针。

答案 1 :(得分:1)

安装visual studio,编译调试版本,配置调试符号(TLDR:工具,选项,调试,符号,检查“Microsoft Symbol Server”),从调试器开始,你会看到会发生什么。 一定要阅读调试输出(View,Output):经常调试构建只打印事情失败的原因。

“Windows中的gdb”被称为windbg,其主要部分内置于操作系统中。 Here’s the documentation

然而,很多比使用visual studio的调试器更难。但是如果你在崩溃的机器上没有visual studio,或者无法可靠地重现崩溃,即只有转储,那么你必须使用它。