セグメンテーションメッセージの解釈
2023-11-19 18:13:55
質問
次のセグメンテーションのメッセージの正しい解釈は何ですか。
segfault at 10 ip 00007f9bebcca90d sp 00007fffb62705f0 error 4 in libQtWebKit.so.4.5.2[7f9beb83a000+f6f000]
segfault at 10 ip 00007fa44d78890d sp 00007fff43f6b720 error 4 in libQtWebKit.so.4.5.2[7fa44d2f8000+f6f000]
segfault at 11 ip 00007f2b0022acee sp 00007fff368ea610 error 4 in libQtWebKit.so.4.5.2[7f2aff9f7000+f6f000]
segfault at 11 ip 00007f24b21adcee sp 00007fff7379ded0 error 4 in libQtWebKit.so.4.5.2[7f24b197a000+f6f000]
どのように解決するのですか?
これは、実行するコードを見つけようとしてヌルポインタを追ったことによるセグメンテーションフォルトです(つまり、命令フェッチ時)。
これが共有ライブラリではなく、プログラムであった場合
実行
addr2line -e yourSegfaultingProgram 00007f9bebcca90d
を実行し (そして与えられた他の命令ポインタの値でも繰り返します)、 どこでエラーが起こっているかを確認します。より良い方法は、デバッグ計装されたビルドを取得し、gdb のようなデバッガーで問題を再現することです。
これは共有ライブラリであるため
ダイナミックリンカーによってライブラリがメモリ内のどこに配置されたかを事後的に知ることはできません。この問題を
gdb
.
エラーの意味するもの
フィールドの内訳は以下の通りです。
-
address
(このat
の後) - コードがアクセスしようとしているメモリ上の場所(それはおそらく10
と11
は、有効な値が設定されていると期待されるポインタからのオフセットですが、そのポインタは代わりに0
) -
ip
- 命令ポインタ、つまり、これを行おうとしているコードが存在する場所。 -
sp
- スタック ポインタ -
error
- ページフォルトのためのエラーコードです。/* * Page fault error code bits: * * bit 0 == 0: no page found 1: protection fault * bit 1 == 0: read access 1: write access * bit 2 == 0: kernel-mode access 1: user-mode access * bit 3 == 1: use of reserved bit detected * bit 4 == 1: fault was an instruction fetch */
関連
-
Linux sarコマンドによるシステム性能の詳細解析事例
-
deepin linuxでroot権限に切り替えるには?Deepinでrootに切り替えるためのヒント
-
Linux Mintでフェード効果をオンにする方法は?
-
deepin20のデスクトップアイコンのスタイルを変更する方法は?deepinのアイコンテーマを変更するためのヒント
-
[解決済み】最大呼び出しスタックサイズ超過エラー
-
[解決済み] エクスポートあり/なしの変数の定義
-
[解決済み] Cプリプロセッサはなぜ "linux "という単語を定数 "1 "と解釈するのですか?
-
[解決済み] Linuxのディレクトリ内のファイルを再帰的にカウントする
-
[解決済み] rm, cp, mvコマンドで引数リストが長すぎるというエラーが発生する。
-
[解決済み] 複数のプロパティを持つCSSトランジションショートハンドリング?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Linuxのデスクトップの背景を画像で引き伸ばし表示にする方法とは?
-
Centos7のインストールと展開無料のconfluence wikiの(知識ベース)詳細な操作手順
-
deepin20ターミナルでサーバーをリモート管理する方法
-
LinuxでJenkinsプラグインのインストールが遅い場合の解決策
-
ubuntu 12.04 eclipse でプログラム g++ がパスに見つからなかったと報告される。
-
リクエスト・エンティティが大きすぎる問題の解決策
-
[解決済み] IOCTL Linuxデバイスドライバ [終了しました]
-
[解決済み] すべてのディレクトリとサブディレクトリを再帰的にgrepするにはどうしたらいいですか?
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] Linuxで特定のポートで動作しているプロセスを停止させる方法は?