問題タブ [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 に答える
2252 参照

bash - Fortran 90 プログラムで SIGSEGV または SIGFPE による出力を抑制するにはどうすればよいですか?

Fortran 90 で記述されたシミュレーション プログラムを実行する bash スクリプトがあり、すべての出力がファイルにリダイレクトされます。プログラムが問題なく終了したら、success パラメータを設定します。コードは次のようになります。

画面への出力は、「Running program... OK」または「Running program... NOT OK」のいずれかになります。場合によっては、シミュレーション プログラムが浮動小数点例外またはセグメンテーション エラーでクラッシュし、対応するシグナルが送信されます (SIGSEGV / SIGFPE)。出力は次のようになります。

SIGFPE または SIGSEGV によるエラー出力を抑制するにはどうすればよいですか?

そのようなエラーがある場合でも?たとえば、トラップの使用を検討しました

しかし、私はまだ次のようなものを取得します

どんな助けでも大歓迎です!

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

c - 変数の追加によるセグメンテーション違反

私は確かにストレート C の初心者ですが、これには困惑しました。私は練習のためにリンクされたリストの実装に取り​​組んでいます.split_node関数に変数を追加するだけでセグメンテーション違反が発生します:

このコードはコンパイル (gcc -Wall -o list list.c) され、正常に実行されます。

int fooしかし、の最後でコメントを外しsplit_node、コンパイルして実行すると、次のようになります。

gdb は私にこのバックトレースを与えます:

変数定義を追加するとセグメンテーション違反が発生するのはなぜですか? 新しく作成されたノードのコンテンツ ポインタを壊しているようです。よくわかりません; 助けはありますか?

0 投票する
2 に答える
1424 参照

mysql - DBI と MySQL での奇妙なルビー セグメンテーション エラー

次のコードでは、最後の行でセグメンテーション違反が発生します

問題を引き起こしているのは間違いなく最後の行です。次の行の print ステートメントは実行されません。

このような単純な試みが失敗する理由を誰か知っていますか?

違いが生じる場合に備えて、これをWindowsで実行しています。

0 投票する
2 に答える
9408 参照

bash - bash スクリプトでの stderr の一時的なリダイレクト

別のプログラムを開始するために使用される簡単なスクリプトがあります。この他のプログラムはSIGSEGV、私の出力を混乱させる を生成することがあります。したがって、が無視さstderrれる/dev/nullように を一時的にリダイレクトすることになっている行をいくつか追加しました。SIGSEGV以下は私のコードのドラフトです:

問題は、最後の行が私が望むことをしないことです。最初の行は明らかに機能し、stderr. 最後の行は、元の場所に戻すことstderrになっています (これは、 と同じだと思っただけですstdout)。

どんな助けでも感謝します!

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

c - 文字列の配列をパラメーターとしてCの関数に渡す

文字列を受け取り、解析後に文字列の配列を返す単純な関数が必要です。だから、これは私の関数のシグネチャです:

それから私はそれをこのように呼びます:

このようにして、コンパイル中に警告が表示されます。

そして、ここで/*sfとマークされた行での実行中のセグメンテーション違反*/

私のCコードの何が問題になっていますか?

前もって感謝します

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

c++ - このポインター間初期化セグメント フォールトが発生するのはなぜですか?

クラス オブジェクトのポインター ツー ポインターを作成し、そのポインターを使用して新しいオブジェクトを作成しようとすると、セグメント フォールトが発生します。なぜこれが起こるのですか?

Soldier クラスのコンストラクター:

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

debugging - セグメンテーション違反の行番号

セグメンテーション違反の行番号を表示するように設定できる gcc オプションはありますか?

自分ができるということがわかっている:

  1. 行ごとにデバッグする
  2. コードにprintfsを入れて絞り込みます。

編集:

  1. bt/ wheregdbでスタックなし。
  2. 役立つ提案
0 投票する
9 に答える
19864 参照

c++ - Linux でセグメンテーション違反を試行/キャッチする

Linux C++ アプリケーションがあり、逆参照する前にオブジェクト ポインターの有効性をテストしたいと考えています。ただし、Linux ではセグメンテーション違反のため、try/catch は機能しません。これはどのように行うことができますか?

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

c - printf使用時のセグメンテーション違反

浮動小数点例外のシグナル ハンドラで Linux C コードをデバッグしています。目標は、浮動小数点レジスタをチェックし、いくつかの情報を出力してから中止することです。の結果を印刷しようとすると、セグメンテーション違反が発生し(char)('0' + phyreg)ます。

(char)('0' + phyreg)別の行に移動して結果を一時変数に保存すると、printfが一時変数を表示しようとするまでセグメンテーション違反が発生しないため、問題は計算ではありません。では、segfault を引き起こすバグはどこにあるのでしょうか?

0 投票する
9 に答える
788 参照

c++ - デバッグコンパイルされた実行可能ファイル:NULLへの無効な書き込みで正常に中止しないのはなぜですか?

私がC/C ++について理解していないのは、次のとおりです。

はい、誰もがそれを使用して非常に高速な実行可能ファイルを取得するため、最適化をオンにしてコンパイルします。

ただし、デバッグ情報をオンにしてコンパイルする場合は、速度は気にしません。では、そのコンパイルモードにさらに多くの情報を含めてみませんか。たとえば、いくつかのsegfaultが発生する前に検出します。事実上、assert(ptr != NULL)ポインタへのすべてのアクセスの前にを挿入しますptr。なぜコンパイラはそれができないのですか?繰り返しになりますが、デフォルトではオフになっているはずですが、そのような可能性があるはずです。

編集:一部の人々は、私が提案した検出は意味をなさないか、レポートがsegmentation faultまだ行っていないことを何もしないと言いました。しかし、私が念頭に置いているのは、より優雅で有益な中止です。これは、問題のあるコードのファイル名と行番号を、同じように出力しassert()ます。