2

次のようなクラッシュが発生します。

#0  0x2c58def0 in raise () from /lib/libpthread.so.0
#1  0x2d9b8958 in abort () from /lib/libc.so.0
#2  0x2d9b7e34 in __malloc_consolidate () from /lib/libc.so.0
#3  0x2d9b6dc8 in malloc () from /lib/libc.so.0

ヒープ破損の問題だと思います。ulibc には mcheck/mprobe がありません。Valgrind は MIPS をサポートしていないようで、私のアプリ (マルチスレッド) はハードウェア固有のドライバーに依存しています。ヒープの一貫性をチェックし、破損を検出するための提案はありますか?

4

2 に答える 2

1

簡単に冗長にすることができる、代わりの malloc() (この回答も参照)を使用します。ガベージ コレクションが必要だと言っているわけではありませんが、リンクが提供する追加のログ機能が必要なようです。

ヒープの破損である場合、コレクターも同様にチョークし、より意味のあるメッセージを表示します。使用するのが難しすぎてはいけません。必要なものを入手したら、使用をやめてください (特に、単に傍受させた場合malloc())。

Valgrindのように問題に焦点を合わせるつもりはありませんが、少なくともオプションです:)

于 2010-05-20T16:00:57.067 に答える
0

ハードウェアのふりをするスタブ ドライバーを作成することもできます。これにより、より完全な機能を備えた環境でプログラムをビルドおよびテストできます。

于 2010-05-21T01:23:53.493 に答える