使用g ++编译时的非法指令

Chr*_*olf 1 c++ g++ instructions

我有一个问题,在linux下运行的C++程序,用g ++编译后会在一段时间后引发非法指令异常并且我得到一个核心转储.当我使用gdb进行回溯时,我得到了

(gdb) bt
#0  0x005e18cf in ATL_dpotrfL () from /usr/lib/liblapack.so.3gf
#1  0x00000001 in ?? ()
#2  0xb786f2e8 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
Run Code Online (Sandbox Code Playgroud)

我不知道为什么回溯中没有主要内容.?? ?? 似乎是我的linux库的一部分,没有调试符号.

我现在的问题是:该计划有什么问题?图书馆lapack是否被错误编译(我几天前复制了它)?或者还有其他错误吗?

我做了definitfly没有汇编或类似的东西.只有C++.

谢谢Christian

Pup*_*ppy 7

这通常意味着粉碎堆栈.特别是0x00000001的值,这很可能不是一个有效的堆栈地址,所以我要说你溢出了堆栈分配的缓冲区并覆盖了返回地址.