※ ChatGPTを利用し、要約された質問です(原文:アボートの原因をさかのぼる方法)
アボートの原因をさかのぼる方法
このQ&Aのポイント
C++プログラムの実行中に突然終了してしまう「アボート」エラーの原因をさかのぼる方法について質問です。
実行中に「memory corruption」というエラーが表示され、ログには「Backtrace」と「Memory map」という情報が表示されました。
どのように問題箇所を探し出し、トラブルシューティングに入ればよいかわかりません。アドバイスをお願いします。
こんにちは。
C++で作ったプログラムをコンパイルし、
何事もなかったので、
さて、実行でもしようかな。と、
実行させていたですが、
「memory corruption」ということで、
「Backtrace」やら、
「Memory map」やらと、
色々とログみたいなのが
ズラリと表示されて、
最後に、「アボートしました」の表示の後、
勝手に終了してしまいました。
どこかが悪いから修正しないといけないのでしょうが、
言葉らしき言葉などはなく、
数字などで占められているので、
どうしていいか?が全くといい見当がつかないでいます。
こうゆう場合と言うのは、
どのように問題箇所を探し出して、
トラブルシュートに入るのでしょうか?
教えてもらえると嬉しいです。どうぞ宜しくお願いします。
*** glibc detected *** ./simulation: malloc(): memory corruption: 0x7f000630 ***
======= Backtrace: =========
/lib/libc.so.6[0x92a596]
/lib/libc.so.6(__libc_malloc+0x95)[0x92bce5]
/usr/lib/libstdc++.so.6(_Znwj+0x27)[0x4826167]
./simulation[0x80c6011]
./simulation[0x80c6099]
./sim[0x81075fd]
./sim[0x809f2c4]
./sim[0x809738d]
./sim[0x8097b30]
./sim[0x80981fa]
./sim[0x809c371]
./sim[0x805a33a]
./sim[0x805a3ef]
./sim[0x808128f]
./sim[0x808130c]
./sim[0x80813d6]
./sim[0x8096ba2]
./sim[0x806b812]
./sim[0x8053811]
./sim[0x806f2ae]
./sim[0x806f2f7]
./sim[0x806f343]
./sim[0x8096f7e]
./sim[0x806c8fb]
./sim[0x8063db2]
./sim[0x8070778]
./sim[0x8070808]
./sim[0x8078948]
./sim[0x8054665]
./sim[0x8076eb8]
./sim[0x8077bc8]
/lib/libpthread.so.0[0xa3232f]
/lib/libc.so.6(clone+0x5e)[0x99820e]
======= Memory map: ========
003f5000-0042f000 r-xp 00000000 fd:00 5006557 /usr/lib/sse2/libgmp.so.3.4.2
0042f000-00430000 rw-p 00039000 fd:00 5006557 /usr/lib/sse2/libgmp.so.3.4.2
006df000-00816000 r-xp 00000000 fd:00 7577755 /lib/libcrypto.so.0.9.8g
00816000-0082a000 rw-p 00136000 fd:00 7577755 /lib/libcrypto.so.0.9.8g
0082a000-0082d000 rw-p 0082a000 00:00 0
0089a000-008b6000 r-xp 00000000 fd:00 7577631 /lib/ld-2.8.so
008b6000-008b7000 r--p 0001c000 fd:00 7577631 /lib/ld-2.8.so
008b7000-008b8000 rw-p 0001d000 fd:00 7577631 /lib/ld-2.8.so
008ba000-00a1d000 r-xp 00000000 fd:00 7577638 /lib/libc-2.8.so
00a1d000-00a1f000 r--p 00163000 fd:00 7577638 /lib/libc-2.8.so
00a1f000-00a20000 rw-p 00165000 fd:00 7577638 /lib/libc-2.8.so
00a20000-00a23000 rw-p 00a20000 00:00 0
00a25000-00a28000 r-xp 00000000 fd:00 7577646 /lib/libdl-2.8.so
00a28000-00a29000 r--p 00002000 fd:00 7577646 /lib/libdl-2.8.so
00a29000-00a2a000 rw-p 00003000 fd:00 7577646 /lib/libdl-2.8.so
00a2c000-00a41000 r-xp 00000000 fd:00 7577642 /lib/libpthread-2.8.so
00a41000-00a42000 r--p 00014000 fd:00 7577642 /lib/libpthread-2.8.so
00a42000-00a43000 rw-p 00015000 fd:00 7577642 /lib/libpthread-2.8.so
00a43000-00a45000 rw-p 00a43000 00:00 0
00a47000-00a6e000 r-xp 00000000 fd:00 7577664 /lib/libm-2.8.so
00a6e000-00a6f000 r--p 00026000 fd:00 7577664 /lib/libm-2.8.so
00a6f000-00a70000 rw-p 00027000 fd:00 7577664 /lib/libm-2.8.so
00a72000-00a85000 r-xp 00000000 fd:00 7577648 /lib/libz.so.1.2.3
00a85000-00a86000 rw-p 00012000 fd:00 7577648 /lib/libz.so.1.2.3
00a88000-00a90000 r-xp 00000000 fd:00 7577644 /lib/librt-2.8.so
00a90000-00a91000 r--p 00007000 fd:00 7577644 /lib/librt-2.8.so
00a91000-00a92000 rw-p 00008000 fd:00 7577644 /lib/librt-2.8.so
00c21000-00c2e000 r-xp 00000000 fd:00 7577652 /lib/libgcc_s-4.3.0-20080428.so.1
00c2e000-00c2f000 rw-p 0000c000 fd:00 7577652 /lib/libgcc_s-4.3.0-20080428.so.1
0476b000-04852000 r-xp 00000000 fd:00 3588124 /usr/lib/libstdc++.so.6.0.10
04852000-04856000 r--p 000e6000 fd:00 3588124 /usr/lib/libstdc++.so.6.0.10
04856000-04858000 rw-p 000ea000 fd:00 3588124 /usr/lib/libstdc++.so.6.0.10
04858000-0485d000 rw-p 04858000 00:00 0
40239000-4023a000 ---p 40239000 0アボートしました
お礼
まあ、結局はそうゆうことなんですよね。 1つづつ問題の切り分けをしていくしかないですねー。 ファイル数があまりに膨大で、 何か近道はないかと思いましたが、 1つ1つ、つぶしていきます。 どうもでした。