我正在将我在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缺少但是如何找到哪个?
答案 0 :(得分:1)
在调试器下运行它,看看发生访问冲突时它正在做什么。
然后再做一次,看看为什么变量仍然是空指针。
答案 1 :(得分:1)
安装visual studio,编译调试版本,配置调试符号(TLDR:工具,选项,调试,符号,检查“Microsoft Symbol Server”),从调试器开始,你会看到会发生什么。 一定要阅读调试输出(View,Output):经常调试构建只打印事情失败的原因。
“Windows中的gdb”被称为windbg,其主要部分内置于操作系统中。 Here’s the documentation
然而,很多比使用visual studio的调试器更难。但是如果你在崩溃的机器上没有visual studio,或者无法可靠地重现崩溃,即只有转储,那么你必须使用它。