問題タブ [segmentation-fault]

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 投票する
2 に答える
39267 参照

linux - Linux: SIGSEGV をデバッグするには? エラーの原因を追跡するにはどうすればよいですか?

私のFirefoxは今日からクラッシュし始めました。システムやFirefoxの設定は何も変更していません。

問題を追跡するために使用します。それは大きな助けではありません。
strace -ff -o dumpfile.txt firefox

生成された 2 つのプロセス ダンプに segfault が表示されますが、原因を突き止めるにはどうすればよいですか?

10 秒間実行してクラッシュした後、strace によって 22MB のデータが生成されます。

これは出力のスニペットで、実際の SIGSEGV が真ん中に表示されています。

0 投票する
3 に答える
493 参照

image - MATLABでカメラを操作するセグメンテーション違反

私はMatlabを使用してカメラを操作しています。これはIDTSharpVisionカメラであり、会社が提供するMatlabインターフェイスを使用しています。画像を取得しようとすると、セグメンテーション違反が発生します。イメージの空の配列を作成してメモリを事前に割り当てようとしましたが、これは機能しません。

これは、セグメンテーション違反の原因となるコード行です。

SharpML.dllには、カメラを制御するためのMEXファイルが含まれています。

エラーメッセージスタックトレースからの選択は次のとおりです。
[0]QCamChildDriver.dll:0x160fdde4(0x0f99ef08、15、0x00ced938、0x00ced938)
[1] QCamDriver.dll:0x0f9c1dd8(4146、0x00ced938、0x00ced924、0x11283430)
[2] dll:0x0f991d8c(2、0x00cedf88、2、0x00cedfe8)
[3] SharpML.dll:0x0f991448(2、0x00cedf88、2、0x00cedfe8)
... [
35] MATLAB.exe:0x00403bd2(1109972、0、0x7ffd9000、0x805512fa)
36] kernel32.dll:0x7c817077(0x00403daf、0、0x78746341、32)

助言がありますか?それ以来、カメラを製造している会社は廃業しました。

〜アダム

0 投票する
3 に答える
1345 参照

linux - Linux:「本当の」セグメンテーション違反ハンドラーはどこにありますか?

マップされていないアドレスに読み取り/書き込み/ジャンプした場合。

これにより、セグメンテーション違反が発生します。

マップされていないアドレスへの読み取り/書き込みを傍受し(どのように?)、「ユーザーモード」信号をスローするシステム(カーネル)の実際の部分は何ですか?

0 投票する
7 に答える
6361 参照

c - C のループに malloc/free が現れるとセグメンテーション違反

基本的に次のようなプログラムがあります。

これは単なる骨格ですが、うまくいけば十分な画像が得られます. A とにかく、通常は正常に動作しますが、n1、n2 の一部の値では、free(cplptr) がセグメンテーション違反を引き起こすようです。これは 1 回だけ呼び出され、cplptr への malloc() 呼び出しの後、cplptr の対応する free() の前にアドレスをチェックします。

アドレスが一致しているということは、free() が解放すべきものを解放しているということですよね?? gdb は、プログラムが受信したシグナル SIGSEGV、セグメンテーション違反を示します。0xb7ce179b in ?? () /lib/tls/i686/cmov/libc.so.6 およびステップから 現在の関数の境界が見つかりません

セグメンテーション違反を回避するようなものを実装する別の方法はありますか?

あなたの提案をありがとう!何が起こっているのか分かりますか??

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

linux - 保護されたメモリが与えられたときに、システムコールでSIGSEGVハンドラーを呼び出すにはどうすればよいですか?

私はmprotect、プログラムのほとんどのメモリへのアクセスを削除するために使用するメモリ追跡ライブラリと、プログラムがページにアクセスしたときに個々のページへのアクセスを復元するためのSIGSEGVハンドラーに取り組んでいます。これはほとんどの場合うまく機能します。

私の問題は、私のライブラリがアクセスをマークしていないメモリを使用してプログラムがシステムコール(たとえばread)を呼び出すと、システムコールは-1を返し、に設定errnoすることEFAULTです。これにより、テスト対象のプログラムの動作が奇妙な方法で変更されます。システムコールが実際にカーネルに送られる前に、システムコールに与えられたメモリの各ページへのアクセスを復元できるようにしたいと思います。

私の現在のアプローチは、メモリにアクセスする各システムコールのラッパーを作成することです。各ラッパーは、実際のシステムコールに渡す前に、与えられたすべてのメモリにアクセスします。これは、プログラムから直接行われた呼び出しでは機能するようですが、libcで行われた呼び出しでは機能しないようです(たとえば、ラッパーを使用せずに直接fread呼び出します)。readより良いアプローチはありますか?どうすればこの振る舞いを得ることができますか?

0 投票する
5 に答える
1587 参照

c++ - セグメンテーション違反の原因がわからない-C++

こんにちは私はプログラミングの経験がありますが、ポインタはあまり得意ではありません。作業中のこのプログラムをデバッグしようとしていますが、セグメンテーション違反が発生し続けます。私のコードは次のとおりです。

私の問題は、コードの次の部分にあるようです。

コードをコンパイルし、そのセクションが含まれていると、プログラムが実行されますが、最後にセグメンテーション違反が発生します。ただし、そのセクションをコメントアウトすると、すべてが正常に実行され、セグメンテーション違反は発生しません。通常の整数がどのようにセグメンテーション違反を引き起こしているのかわかりません。誰かが私が犯した間違いと私が犯した場所を説明してくれたら、私はそれを大いに感謝します。前もって感謝します

0 投票する
4 に答える
63435 参照

android - Android の JNI で SIGSEGV (セグメンテーション違反) をキャッチしてスタック トレースを取得するにはどうすればよいですか?

私はプロジェクトを新しい Android Native Development Kit (つまり JNI) に移行しています。SIGSEGV が発生した場合 (おそらく SIGILL、SIGABRT、SIGFPE) をキャッチして、適切なクラッシュ レポート ダイアログを表示したいと考えています。 (またはその前に)現在何が起こっているか:プロセスの突然の突然の終了と、おそらくOSによる再起動の試み。(編集: JVM/Dalvik VM はシグナルをキャッチし、スタック トレースやその他の有用な情報をログに記録します。その情報を実際にメールで送信するオプションをユーザーに提供したいだけです。)

状況: 私が書いていない大量の C コードが、このアプリケーション (すべてのゲーム ロジック) のほとんどの作業を行っており、他の多くのプラットフォームで十分にテストされていますが、私の Android でポートは、ガベージをフィードし、ネイティブ コードでクラッシュを引き起こすため、現在 Android ログに表示されているクラッシュ ダンプ (ネイティブと Java の両方) が必要です (Android 以外の状況では stderr になると思います)。C コードと Java コードの両方を任意に変更することは自由ですが、コールバック (JNI に出入りする両方) の数は約 40 であり、明らかに、小さな差分にはボーナス ポイントがあります。

J2SE のシグナル チェーン ライブラリである libjsig.so について聞いたことがあります。そのようなシグナル ハンドラを Android に安全にインストールできれば、質問のキャッチ部分は解決しますが、Android/Dalvik 用のライブラリはありません。 .

0 投票する
4 に答える
216 参照

mysql - MySQL データベースへのアクセス時の RoR セグメンテーション違反

Solaris 10 サーバーで Ruby on Rails を実行しています。今日、MySQL システムで正しく動作するように Ruby を再インストールしたところ、これまで取り組んできた新しいアプリケーションを追加できるようになりました。また、宝石とシステムを更新しました。このシステムで最近更新されていないのは MySQL だけで、バージョン 5.1.25 です。

Mongrel サーバーを実行すると、システムは数回、場合によってはそれ以上の負荷で問題なく動作します。私の足場の 1 つのインデックスを数回リロードした後、または新しいアイテムを追加してそのショー ページをロードした後、サーバーはセグメンテーション エラーを報告して終了します。「Segmentation Fault (core dumped)」以外のデバッグ出力はありません。他のすべての出力は正常に表示されます。

サーバーでいくつかの新しいアプリケーションを作成しましたが、同じエラーが表示されます。データベースを無効にしてアプリケーションを作成しても、この問題は発生しません。

どんな助けやアドバイスも大歓迎です!

更新: 残念ながら、MySQL 5.0.45 にダウングレードして mysql gem を再インストールしても問題は解決しませんでした。他にお勧めがあれば教えてください!インストールされているソフトウェアとそのバージョンの完全なリストは、こちらで確認できます。

0 投票する
4 に答える
25185 参照

c++ - 構造体ポインタを保持するSTLリスト

私は頂点と呼ばれる構造を持っており、それらへのポインタをいくつか作成しました。私がやりたいのは、それらのポインターをリストに追加することです。以下の私のコードは、ポインタをリストに挿入しようとすると、セグメンテーション違反を引き起こします。誰かが何が起こっているのか説明してもらえますか?

0 投票する
8 に答える
31270 参照

php - このPHPコマンドラインスクリプトでこのセグメンテーション違反が発生するのはなぜですか?

これは、私が「メンタルログファイル」と呼んでいるメッセージへの簡単なスクリプトです。私が漂流して仕事に戻るときの私の考えを追跡するためだけに。とにかく、ほとんどの場合は問題なく動作しますが、セグメンテーション違反が発生することがよくあります。それらはCで聞いたことがありますが、PHPではこれまでに一度もありませんでした。スクリプトは次のとおりです。

これが私がいくつかの実行で得たものです:

私がここで間違っている可能性があることについて何か考えはありますか?セグメンテーション違反が発生した実行でも、ファイルは期待どおりに正しく更新されているようです。私はUbuntu9.04Jauntyを実行しています。

前もって感謝します。