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

c# - C#モノラルp/呼び出し失敗

最近、私はモノラル(Linuxプラットフォーム用の.NET)でp / invokeを使用して、C#でどのように機能するかを調べるための単純なOpenGLアプリケーションを作成しようとしました(すでにWindowsで成功しています)。taoフレームワークについて聞いたことがありますが、プログラムのような単純な「HelloWorld」にすべてが必要なわけではありません。

私は最初に立ち往生しました。いくつかのGL関数を呼び出して、それらが機能するかどうかを確認しました。私はすぐにglClearColorとglClearを呼び出して、glGetErrorが設定されるかどうかを確認しました(openglがその時点でまったく初期化されていないため)。

関数を呼び出す代わりに、クラッシュして次のスタックトレースと他のdebuginfoをダンプします。例外はスローされません。

スタックトレース:

glClearColorの署名は次のとおりです。

C仕様は次のとおりです。

ヘッダーで宣言を見たように、GLclampfはfloatです。

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

c++ - Openwrt Linux で -pthreads を使用して C++ をコンパイルすると、セグメンテーション エラーが発生します

私は C++ でのプログラミングにかなり慣れていないので、pthreads を使用しています。コードを OpenWRT 用にクロス コンパイルしていますが、ボードでプログラムを実行すると何らかの理由でセグメンテーション エラーが発生しますが、PC では正常に実行されます。小さな C プログラムを試してみたところ、問題なく動作したため、コンパイルのリンク段階でエラーが発生したと思われます。また、ファイルの名前を .cpp に変更して g++ でコンパイルしても機能します。

Eclipse コンパイラーからの出力:

編集: 古いコードを削除し、新しいより単純な例を追加しました。このコードは、C プログラムとしてコンパイルすると実行されますが、C++ プログラムとしてコンパイルすると実行されません。ボード上で 2.6.26.3 カーネルを実行しています。

0 投票する
10 に答える
20418 参照

c++ - C++ std::vector のポインターの削除とセグメンテーション違反

クラスへのポインターのベクトルがあります。デストラクタを呼び出してメモリを解放する必要があります。それらはポインターのベクトルであるため、 vector.clear() は仕事をしません.だから私は手動でそれをやり続けました:

そこにあるprintfは、どの染色体でセグメンテーション違反が発生したかを確認するための話しているデストラクタがあるためです。clearPool() が呼び出され、サイズが 100 になったと言うと、0 から 100 までの任意の染色体でセグメンテーション違反が発生する可能性があります。

なぜこれが起こっているのか分かりませんし、実際に何が悪いのかを見つける方法もありません。なぜなら、ブレークポイントを使ってデバッグしている間、ランダムな染色体で起こっているだけだからです。

コードブロック IDE と gdb デバッガーを使用しています。セグメンテーション違反が発生したときのスタック トレースには、4 つのメモリ アドレスと関数がありますwsncpy()

0 投票する
13 に答える
6027 参照

c++ - なぜ私はランダムにsegfaultsを取得しているのですか?

これは私にとっては非常に奇妙なことですが、プログラムを起動すると、予期しないランダムなセグメンテーション違反が発生します。動作する場合もあれば、クラッシュする場合もあります。Dev-C++のデバッガーは、ファイルの行を指し示します:stl_construct.h

ちなみに私はSTLを広範囲に使用しています。セグメンテーション違反の原因を検出するにはどうすればよいですか?役立つツールはありますか?このようなランダムなクラッシュにつながる可能性がある理由は何ですか。

編集:

私のプログラムは約5000行のコードを数えます。問題の原因がわからないので、助けを得るためにどのコードを表示する必要があるのか​​わかりません。デバッガーから得たのは、STLに関係しているということだけです。

編集:

ここに移動しましたCode::Blocks。これがコールスタックです。

さらにいくつかの精度:

1/マルチスレッドアプリケーションです。2 /メソッド:get_vehicles_distances(); マップを返します。3 / IsMergeInstruction()によって呼び出されるまでに、マップが初期化されていない可能性があります。

編集:

どうやらセグメンテーション違反を引き起こしている行は次のとおりです:

ここで、vehicles_distances_はマップです。この行はメソッドの一部です:VehicleManager :: MoveAllVehicles();

それの何が問題になっていますか?

編集:

map :: clear();を使おうとしました。map :: Erase();の代わりとして; しかし、同じ問題が発生します!

編集:

わかったと思います...スレッドがクリアされている間、vehicles_distances_を利用しようとしています..(?)

編集:

問題が解決しました!つまり、それはmap :: Erase();から来ていました。予想通り。<key, value>マップを更新できるように、ペアが反転された別のマップ変数を作成することで、問題を回避しました。(必要なキーは距離であり、距離は毎回変化するため一意ではありませんが、id_vehicleは一意であるためです!)最後に、私はそのマップを取得し、<key, value>再度反転して、各サイクルで再宣言できる元のマップに転送しました...

みんな、ありがとう !

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

c++ - glfwSleep() はどのようにして segfault を引き起こすことができますか?

私のマルチスレッド アプリケーションでは、sleep() 関数 (GLFW ライブラリのもの) を使用しています。

私のコールスタックが示すように、それは明らかに私のアプリケーションをセグメンテーション違反に導きます:

glfwSleep()スレッド内で使用されます。それは危険ですか?その結果、プログラムがセグメンテーション違反になるのはなぜですか?

編集:

のパラメータglfwSleep()が < 0.02 (秒) の場合、segfault は発生しません!

編集2:

GLFW の公式ドキュメントから:

スレッド化されたアプリケーションの作成は、慣れるまでは非常に厄介かもしれませんが、いくつかの重要なルールに従うのは非常に簡単です。

  • スレッド間で共有されるデータへの排他的アクセスを常に保証してください!
  • スレッドが適切に同期されていることを確認してください!
  • 決して忙しく待つことはありません!

私は答えを得たと思います..今すぐ代替案を見つけなければなりません..

ありがとう!

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

c - CインラインアセンブリのRDTSCにより、セグメンテーション違反が発生します。

皆さんの助けのおかげで、私は私の小さなインラインアセンブラプログラムをほぼそこに持っていきました。ただし、rdtscコマンドで非常に奇妙なことが発生しているようです。基本的に、呼び出すとセグメンテーション違反が発生します。

rdtscを除外すると、プログラムがコンパイルされ、実行する必要がある処理が実行されます。ただし、rdtsc行を追加すると、セグメンテーション違反が発生します。私はこのようなものをデュアルコアマシンで実行しており、コンパイルに使用しています:gcc -masm = intel test.c

助けていただければ幸いです!

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

ruby - hpricotのセグメンテーション違反

私はHTMLを読むためにhpricotを使用しています。セグメンテーション違反エラーが発生しました。グーグルで検索し、最新バージョンのRubyにアップグレードすると言う人もいます。レール2.3.2とルビー1.8.7を使用しています。このエラーを解決するにはどうすればよいですか?

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

c - セグメンテーション違反はどの時点で発生しますか?

次のコードは、array[10] = 22 または array[9999] = 22 でセゴートしますか?
セグメント障害が発生する前にコード全体が実行されるかどうかを把握しようとしています。(C 言語で)。

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

c - segfaultでいくつかのインデックスが欠落しているforループ

アプリケーションの出力(下)は次のとおりです。

要素インデックス番号:0要素コンテンツ:22
要素インデックス番号:1要素コンテンツ:22
要素インデックス番号:2要素コンテンツ:22
要素インデックス番号:3要素コンテンツ:22
要素インデックス番号:4要素コンテンツ:22
要素インデックス番号:22要素の内容:134513712

5〜21のラベルが付いたインデックス要素が欠落しているのはなぜですか?配列の境界がオーバーフローしたためにこのコードがセグメンテーション違反になる可能性があることを理解しています。そのように設計されています。このコードがなぜ悪いのか、特定のインデックスがスキップされる理由には興味がありません。

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

c++ - pthread_mutex_lockのセグメンテーション違反

やろうとするとセグメンテーション違反が発生します

これは本当に奇妙なことです。何が原因なのかわかりません。コンストラクターで_mutexを初期化しました

私にできることは何ですか?