我遇到一个问题,那就是在linux下运行的C++程序,用g ++编译后在一段时间后引发一个非法的指令异常,并且我得到一个核心转储。当我使用gdb进行回溯时,我得到使用g ++编译时出现非法指令
(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?)
我不知道为什么回溯中没有main。 ?? ??似乎是我的Linux库的一部分,它没有调试符号。
我现在的问题是:该程序的问题是什么?图书馆lapack是虚假编译的(我前几天复制过)?或者是否有其他错误?
我做了definitfly没有汇编或类似的东西。只有C++。
感谢 基督教
看起来堆栈被砸碎。在valgrind下运行。 –
好的,那我该怎么做?只是valgrind ./binary?我还没有使用valgrind。我应该启动哪个工具?我认为valgrind用于内存泄漏。 –
是的,从'valgrind。/ binary'开始,看看它说了什么。 –