問題タブ [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.
linux - Unixシステムでスタックトレースを自動的に取得する
Unixシステムでスタックトレースを自動的に取得するための方法は何ですか?コアファイルを取得したり、GDBと対話的に接続したりするだけでなく、バックトレースをテキストファイルにダンプするSIGSEGVハンドラーを使用することを意味します。
次のオプション機能のボーナスポイント:
- クラッシュ時に収集される追加情報(構成ファイルなど)。
- クラッシュ情報バンドルを開発者に電子メールで送信します。
dlopen
これをed共有ライブラリに追加する機能- GUIを必要としない
linux - スタックオーバーフロー時のセグメンテーション違反
Linux カーネルがスタック オーバーフローで segfault を生成するのはなぜですか? これは、一時配列の c または fortran 作成での alloca がオーバーフローしたときに、デバッグを非常に厄介なものにする可能性があります。確かに、ランタイムがより役立つエラーを生成する可能性は十分にあります。
c - strcpy がグローバル変数でセグメンテーション違反を引き起こすのはなぜですか?
だから私はいくつかのCコードを持っています:
これは、見た目どおりにコンパイル、実行、および動作します。ただし、文字ポインターの一方または両方がグローバル変数として宣言されている場合、strcpy はセグメンテーション違反になります。なぜこれが起こるのですか?明らかに、スコープの理解に誤りがあります。
c - 「char s[]」ではなく、文字列リテラルで初期化された「char *s」に書き込むと、セグメンテーション違反が発生するのはなぜですか?
次のコードは、2 行目でセグ フォールトを受け取ります。
これは完全にうまく機能しますが:
MSVC および GCC でテスト済み。
c - バスエラーとは?セグメンテーション違反とは違うのですか?
「バス エラー」メッセージの意味と、セグメンテーション違反との違いは何ですか?
process - FreeBSD の無限ループ
私は常に segfaults を行うスクリプトを持っています - segfault が python libxml バインディングにあるので解決できない問題 - それらを書きませんでした。わかりましたので、Linux では inf.loop を実行していたので、スクリプトが終了すると次のように再起動します。
まあ、FreeBSD では /bin/bash が見つからないようなので、うまくいきません。
何か案は?cron はオプションではないことを考慮してください。許可されるダウンタイムは数秒です。
c - TCP 通信のセグメンテーション違反
次の C コードでセグメンテーション違反が発生します。
読み取り専用メモリの変更など、許可されていないメモリで何かをしようとするとセグメンテーション違反が発生することは知っていますが、私の知る限り、このプログラムはそれを行いません。セグメンテーション違反がどこから来ているのか、誰にも手がかりがありますか?
c - C ポインターの混乱
文字列をメモリに保存し、後で読みたい:
行 B と行 D は同じアドレスを示していますが、行 C の printf はセグメンテーション違反で失敗します。私は何が欠けていますか?
どんな助けでも本当に感謝します!
null - sprintf アクセス違反
次のコードに問題があります。
正常にコンパイルされますが、実行すると、悪名高い「0XC0000005 アクセス違反」エラーが発生します。b を NULL、""、"0"、0 などに設定しようとしましたが、"0XC0000005 Access Violation" エラーまたは "Expression: string != NULL.
python - Python スレッドの stack_size と segfaults
最大 500 のスレッドを生成する Web クローラー スクリプトで、各スレッドは基本的に、リモート サーバーから提供される特定のデータを要求します。各サーバーの応答は、内容とサイズが他とは異なります。
スレッドのstack_sizeを756Kに設定しています
これにより、必要な十分な数のスレッドを確保し、ほとんどのジョブと要求を完了することができます。しかし、一部のサーバーの応答は他のサーバーよりも大きく、スレッドがそのような応答を受け取ると、スクリプトは SIGSEGV で終了します。
stack_sizes が 756K を超えると、必要な数のスレッドを同時に持つことができなくなります。
クラッシュせずに特定の stack_size を続行するにはどうすればよいかについての提案はありますか? 特定のスレッドの現在使用されているstack_sizeを取得するにはどうすればよいですか?