問題タブ [sigbus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
160 参照

c - mmap アドレスへのアクセス時に、シグナル SIGBUS を受信しました

返されたアドレス mmap にアクセスしようとすると、バス エラーが発生します。

私のコードは以下の通りです:

共有サイズ == 256*1024*1024

shared_start == 401000000000 (フラグ MAP_FIXED を使用)

ファイルを 256M に切り詰めます。

mmap を呼び出しても問題はなく、すべてのアドレス範囲がアクセスできないわけではありません。以下の gdb 情報から、アドレス 0x40100f11ff00 は許可されていませんが、アドレス 0x40100fe00000 は許可されていることがわかります。

以下のマップ情報から、上記でアクセスしたアドレスはすべて mmap アドレスの範囲内にあることがわかります。

ただし、これらのアクセスできないアドレスを書き込むと、バス エラーが発生します。プログラムは信号 SIGBUS を受信しました。バス エラーです。

PS.shared_size を 256M から 128M に減らす場合、問題はありません。

0 投票する
1 に答える
39 参照

c - TTF_RenderText_Solid が SIGBUS を引き起こす

SDL2_ttf を使用してフォントを読み込み、画面にテキストを描画する必要がある次のコードがあります。

構造体宣言:

テキスト レンダリング ヘッダー:

そしてメイン:

しかし、関数を呼び出そうとするたびに SIGBUS が表示されSL_setTextString(SL_Text* text, const char* string)ます。行に表示されますSDL_Surface* surface = TTF_RenderText_Solid(text->font->font, text->text, text->color)

GDB バックトレース:

ところで、一般的な SIGBUS の原因のリストをいただければ幸いです。

0 投票する
0 に答える
1533 参照

go - CIでgo testを実行中のSIGBUSエラーコード= 0x2

これを説明する最善の方法はわかりませんが、この SIGBUS の問題が原因で CI が失敗するのを常に観察しています。エラーはすべて Go の内部にあるようであり、私たちは無知です。

エラーを解決するために、ローカル ボックスでテスト ケースを複数回実行しました。しかし、テストがパスするたびに、SIGBUS の問題は見られません。

これは、CI ボックスのランダム テスト ファイルでのみ発生します。

関連するスタック トレース:

注: ローカル ボックスは MACOS であり、使用している CI はドローンを利用しており、golang:1.13イメージを使用してすべてのテストを実行しているため、私の仮定は次のとおりです。linux/amd64

CIサーバーで頻繁に発生するSIGBUSエラーは、ローカルで使用してテストしても発生しませんMACOSdrone exec

0 投票する
0 に答える
292 参照

android - シグナル 7 (SIGBUS)、コード 1 (BUS_ADRALN) - デバッグ方法

奇妙なクラッシュが発生しました。クラッシュは、リリース ビルドの Samsung Galaxy Tab A (S ペン付き) デバイスでのみ再現されます。

スタック トレースは非常に短く、関連する 2 行のみで構成されています - /lib/arm/my-jni.so (my_func_loop+1662) /lib/arm/my-jni.so (first_function+694)

addr2line を使用してこれらの行を確認しましたが、実際には問題はないと思います。それはおそらくどこかでメモリの問題です。では、どうすればこれをデバッグできますか? 問題の場所に関する情報がないので、問題のある場所を特定するのに役立つフラグを追加してバージョンをリリースする方法はありますか? たとえば、GCC には、これらのバグをキャッチするのに役立つサニタイザーがあります。