我是C ++编程新手。我正在编译一个Windows应用程序,只需几个警告即可编译好,但是当我启动它时,它似乎甚至没有启动并在运行中返回3秒的访问冲突。当我尝试调试时,它似乎甚至没有进入代码,所以我不知道从哪里开始寻找问题。
以下是我可以从调试器中检索的信息:
Building to ensure sources are up-to-date
Build succeeded
Selecting target:
Debug
Adding source dir: C:\Documents and Settings\Christian Ekiza\Mis documentos\My Dropbox\Private Files\coding\juego_pruebas_01\juego_pruebas_01\
Adding source dir: C:\Documents and Settings\Christian Ekiza\Mis documentos\My Dropbox\Private Files\coding\juego_pruebas_01\juego_pruebas_01\
Adding file: bin\Debug\juego_pruebas_01.exe
Starting debugger:
done
Registered new type: wxString
Registered new type: STL String
Registered new type: STL Vector
Setting breakpoints
Debugger name and version: GNU gdb 6.8
Child process PID: 3328
Program received signal SIGSEGV, Segmentation fault.
In ?? () ()
这是来自Call Stack
#0 00000000 0x000154e4 in ??() (??:??)
#1 00409198 __cmshared_create_or_grab() (../../../../gcc-4.4.1/libgcc/../gcc/config/i386/cygming-shared-data.c:140)
#2 00000000 0x0040131b in __gcc_register_frame() (??:??)
#3 00000000 0x0040a09b in register_frame_ctor() (??:??)
#4 00000000 0x00408f42 in __do_global_ctors() (??:??)
#5 00000000 0x00401095 in __mingw_CRTStartup() (??:??)
#6 00000000 0x00401148 in mainCRTStartup() (??:??)
CPU寄存器以
结尾'gs' register with a hex value '0x0'
我真的不知道从哪里开始寻找问题。任何人都可以帮助我或指出我正确的方向?
注意:我正在使用Code :: Blocks
答案 0 :(得分:1)
答案 1 :(得分:0)
看看,如果你有一些带有构造函数的类的全局实例 - 如果在构造函数中引发错误并且类被全局声明(坏事要做btw) - 你甚至可以在main()之前得到sigsegv。 如果您有这样的类 - 尝试重构代码以将它们放在main(或其他函数)中 - 它将更容易调试。
答案 2 :(得分:0)
尝试以下免费的MS工具 - 两者都非常适合调试此类问题。
答案 3 :(得分:0)
听起来像我的一个DLL依赖项无法正确加载或实例化。
答案 4 :(得分:0)
您是否在启用调试模式(-g
)的情况下进行编译?
还要认真考虑实际修复警告。大多数情况下,它们是应该解决的代码中的实际问题。
您还应该尝试查看是否会出现几乎空的主要内容(在main
中注释掉您的大部分/全部代码)。