問題タブ [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.
r - R ffdfappend SIGBUS エラー
ffbase
andパッケージを使用する R スクリプトがありff
ます。Windows では、スクリプトは正常に実行されます。Linux (別のボックス、より高い RAM) では、バス (SIGBUS) エラーでクラッシュします。
Windows (バージョン 6.1.7601) セッション情報:
- R バージョン 3.1.0 (2014-04-10)
- プラットフォーム: x86_64-w64-mingw32/x64 (64 ビット)
- 付属パッケージ:ffbase_0.11.3 ff_2.2-13 bit_1.1-12
Linux (Linux xenja 3.5.0-54-generic #81~precise1-Ubuntu SMP Tue Jul 15 04:02:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux) セッション情報:
- R バージョン 3.1.1 (2014-07-10)
- プラットフォーム: x86_64-pc-linux-gnu (64 ビット)
- 付属パッケージ:ffbase_0.11.3 ff_2.2-13 bit_1.1-12
ff
R スクリプトがクラッシュするポイントは、さまざまなファイルの内容を繰り返し読み取り、関数を介してデータ フレームに連結するループ内にありますffdfappend
。ループは次のとおりです。
Linux で R スクリプトを実行すると、標準エラーで次のように記述されます (非常に長い行は意図的に@@@で切り捨てました) 。
R スクリプトを にアタッチするgdb
と、クラッシュの時点で次の関連メッセージが表示されます。
gdb バックトレース:
R スクリプトを実行するとstrace
、クラッシュの時点で次の関連情報が得られます。
続行する方法についてのアドバイスをいただければ幸いです。
どうぞよろしくお願いいたします。
-ジョージ。
ios - デバイスのリリース バージョンで iOS アプリケーションがクラッシュする
私は奇妙な問題に直面しており、これにはすでにかなりの時間を費やしています。
アプリケーション、特にデバイスのリリース ビルドでクラッシュが発生します。
クラッシュログは次のとおりです。
バイトアライメントに関連する問題があることを理解しています。しかし、私が何をする必要があるかについては何もわかりません。
クラッシュの場所のコード スニペットは、次への有効な値の関数呼び出しです。
どんな助けでも大歓迎です。
ありがとう
詳細を追加する [発信者スニペット]
問題は、ログ「BeaconFence 42」がまったく出力されないことです。isBeaconInsideZoneAndDwellTime の呼び出し中にコードがクラッシュします。コンソール ログでは、sigbus 10 を取得します。
c++ - OS X Yosemite での SIGBUS エラーの診断
一部のコードを OS X で実行するように変換しようとしていますが、一部の低レベル メモリ書き込みコード (Linux/Windows プラットフォームで動作) に問題があります。
具体的には、呼び出されるメソッドは次のとおりです。
関連するテスト コード (GTest) は次のとおりです。
gdb (homebrew を使用してインストール) で実行すると、次のようになります。
違いがないように見える明示的なキャストを追加しようとしました。
OS Xでこれが失敗する理由についての手がかりが見つかりません。これを診断する方法についての助けをいただければ幸いです。
java - SIGBUS を再現する確実なクロスプラットフォームの方法はありますか?
この質問は純粋な好奇心からです。個人的には、このシグナルが発生しているのを見たことがありますが、そうであるということはめったにありません。
信頼できる再現方法はないかとCチャットルームで聞いてみました。そしてまさにこの部屋で、ユーザー @Antti Haapalaが 1 つ見つけました。少なくとも Linux x86_64 システムでは...そして、いくつかいじった後、同じパターンが 3 つの言語で再現可能でした。
ハ
パイソン
ジャワ
繰り返しますが、上記のすべての例は Linux x86_64 システムでのみのものです。私には他に何もありません。
他のシステムでこれを再現する方法はありますか?
副次的な質問: 上記の例が を持たないシステムで再現可能である場合SIGBUS
、何が起こるでしょうか?
ios - iOS アプリのクラッシュ - SIGBUS - BUS_ADRALN
でアプリがクラッシュしiPhone 4 iOS 7.1.3
ます。オンiOS 9
で、iP6
すべて問題ありません。
これは、2 つのジェネリック型を持つかなり複雑なジェネリック クラスをインスタンス化することが原因です。
実装の詳細を提供できますが、クラスには数百行あります。
コード:
そしての一部crashlog
:
assembly - SIGBUS エラー - RaspberryPi 上の ARM プロセッサのアセンブリ
低レベルの操作に興味があるので、暇なときにアセンブリを学んでいます。 このチュートリアルのコードを実行してみました。
コードはここと以下にあります。
Raspberry Pi でコードをコンパイルします。
問題なくコンパイルできますが、実行すると次のエラーが発生します。
プログラム受信信号 SIGBUS、バスエラー。
main() の 0x00010428
SIGBUS エラーの原因について調査しましたが、ここで考えられる唯一のことは、整列されていないメモリへのアクセスです。 .
ランニング
私は以下を取得します:
プロセッサ: 0
モデル名: ARMv6 互換プロセッサ rev 7 (v6l)
BogoMIPS: 2.00
機能: ハーフサム fastmult vfp edsp java tls
CPU 実装者: 0x41
CPU アーキテクチャ: 7
CPU バリアント: 0x0
CPU 部分: 0xb76
CPU リビジョン: 7ハードウェア: BCM2708
リビジョン: 0002
c - MAP_FIXED を使用した mmap 上の SIGBUS | MAP_FILE | MAP_SHARED
:) 一部のレガシー コード (大規模なプログラム) を CentOS 7 に移植しようとしていますが、問題が発生しています。コードのコアは、ハードコードされたアドレスを割り当て、ファイルをそれにマップするために mmap を使用して構築された、やや厄介な構造です。このファイルはデータベースのように機能し (データベースによって構築されます)、マップされたメモリのさまざまなセクションへのハードコーディングされたポインターが含まれています。非常に醜いですが、それはそれです。プログラム全体はこの構造を中心に構築されており、誰も書き直しに資金を提供するつもりはありません。
問題は mmap 行にあります。これは以前は機能していましたが、CentOS 7 では機能しなくなりました。
...SMAddr
は0x8000000
、SMA_WINDOW_SIZE
は127926272
、readOnly
は false です。0x8000000
つまり、基本的には、ファイルをサイズ 122MBのアドレスにマップしようとしています。
バージョン間で何が変わったのか、私にはわかりません。ただし、マッピングするファイルはわずか 1.5 MB であることに注意してください。なぜファイルサイズよりも多くをマップする必要があるのか 正確にはわかりませんが、それが必要であることはわかっています.
実際のファイル サイズと割り当てられたサイズの不一致は、以前は問題ありませんでしたが、今は問題ありませんか? SIGBUS
これは、無効なメモリ領域にアクセスしようとしていることを意味します。mmap が割り当てられたポインターをまったく使用しないことを考えると、これは内部で行っているものでなければなりません。
キャッチしてブロックしようとしSIGBUS
ましたが(無視できるのではないかと思いますか?)、プログラムはまだSIGBUS
同じ場所でクラッシュしました。多分私はそれを間違った。
考え?
linux - AC フラグを使用したアライメントされていないメモリ アクセスは、Windows でトラップを発生させません。
Intel x86_64 CPU搭載。Windows で「unaligned memory access fault」をキャッチしようとしています。これは Linux (Ubuntu) で完全に機能します。
たとえば、次のように EFLAGS レジスタの AC フラグをオンにできます。
次に、位置合わせされていないメモリ アクセス (0x804a003 での DWORD 読み取り/書き込みなど) により、Linux プロセスで SIGBUS エラーが発生します。
ただし、同じ CPU を使用して、Windows (7 および 8) で同じことを行っても、何も起こりません。誰かが私に理由を説明できますか?? これは、Windows が CR0.AM フラグを無効にし、Linux が無効にしないためですか?
アドバイスをいただければ幸いです。ありがとうございました。