タグ付けされた質問 「segmentation-fault」

2
OSがメモリアクセス違反を検出する方法
オペレーティングシステム(Linuxが望ましい)は、許可されていないメモリロケーションにアクセスしたことをどのように認識しますか? この質問は、それらのいまいましいポインターに触発されました!私の考えでは、コンピューターのすべては、速度、セキュリティ、整合性などの妥協点に関するものです。 Linuxのメモリマップはよく知っていますが、アクセスしようとしている場所がアクセスするたびにカーネルが有効な範囲内にあるかどうかをカーネルがチェックするのは少しばかげています。それは非常に多くの時間を無駄にし、より生産的な何かをすることに費やすことができるように聞こえます(しかし、おそらくチェックなしでは安全性は低下します!)。それとも、最近のすべてのアクセスを記憶し、すべてのハードウェアタイマーティックでチェックしますか?(しかし、それは安全ではないように思えますが、それでもまた遅いです。) 私はこの質問がどこでも答えられていないように見えることに驚いた。それは私がいつも疑問に思っていたものです。OSに代わってこれを行うハードウェアのセクションがあり、便利で便利な抽象化レベルにあると思うようになります。しかし、それでも、すべてのコンテキストスイッチで次のプロセスのメモリマップをロードする必要があり、これもまた遅いように聞こえます。 そう、とにかく、私は少し続けています:OSはどのようにメモリ違反を検出しますか? ありがとう

0
無限再帰によるセグフォルトのバッシュ
私bashが使用している(4.2.25(1))は無限関数の再帰に対して保護されていないことに気付きました。このような場合、Segfaultが発生します(そしてbashプロセスが終了します)。でこれを確認するにはbash、次のように入力します。 $ bash $ f() { f; } $ f (最初にサブシェルを開始すると(最初の行)、端末のシェルを危険にさらすことなく実験できる候補が得られます。最初の行がなければ、ターミナルウィンドウはおそらくすぐに閉じられるので、興味深いものは何も表示されません。) 私はこの現象の理由を理解していると思います。おそらくbashプロセスに割り当てられていないメモリの領域に書き込もうとするスタックオーバーフローです。 私が疑問に思っているのは、2つのことです。 bashそのような状況からそれを保護するためのチェックを行うべきではありませんか?「シェル関数でのスタックオーバーフロー」のようなより適切なエラーメッセージは、単純な役に立たないセグフォールトよりも確実に優れています。 これはセキュリティ上の問題でしょうか?このメソッドは、プロセスに割り当てられていない(Segfaultになる)メモリパーツに書き込む前に、bash内部スタックに使用することを意図していない他のパーツを上書きする可能性があります。

1
なぜmuttはセグメンテーションエラーで終了するのですか?
メールボックスを同期するために$を押しましたが、muttただ終了しました...実際mutt、$を押すたびに終了するわけではありません。では、muttが終了する理由をどのように把握すればよいでしょうか これは「mutt」のバグですか? エラーメッセージは次のとおりです。 Sorting mailbox... Segmentation fault 私は使用することができstraceてmutt、私は何が起こるかを知りたい場合は?または、問題についてもっと知るのに良いツールがありますか? 今、私はメールに返信し、$を押してからセグメンテーションエラーを押しました。

1
Ubuntu 11.04で断続的なXorgがクラッシュする
昨日Ubuntuをアップグレードしてから、セッションがクラッシュし、ログイン画面に戻ることを余儀なくされたいくつかのインスタンスを見てきました。Xorgログをざっと覗くと、次の情報が記録されたセグメンテーションエラーが表示されます。 [12554.427] バックトレース: [12554.427] 0:/ usr / bin / X(xorg_backtrace + 0x3b)[0x80eab1b] [12554.427] 1:/ usr / bin / X(0x8048000 + 0x5fac8)[0x80a7ac8] [12554.427] 2:(vdso)(__kernel_rt_sigreturn + 0x0)[0xb780d40c] [12554.427] 3:/ usr / bin / X(_CallCallbacks + 0x3e)[0x8074e1e] [12554.427] 4:/ usr / bin / X(WriteToClient + 0x267)[0x80a7607] [12554.428] 5:/usr/lib/xorg/modules/extensions/libdri2.so(ProcDRI2WaitMSCReply + 0x62)[0xb73c2bf2] [12554.428] 6:/usr/lib/xorg/modules/extensions/libdri2.so(DRI2WaitMSCComplete + …

1
Arch Linuxの公式fglrx-driver(ati)のX11セグメンテーション違反
先日、新しいハードウェアで実際に動作するディストリビューションの1つであるため、HP 8200 EliteにArchLinuxをインストールしました。 ここでvesa、ドライバーとして完全に機能するXorgサーバーを実行したいと考えました。しかし、ATI Radeon HD 6570を使用しているため、ATIのオリジナルの専用ドライバーを使用したいと思います。 したがって、カスタムカーネルに関するセクションのATI CatalystのArch Wikiの指示に従いました。エラーなしでパッケージを完全に作成およびインストールしました。私が変更した唯一のことは、元のアーチカーネルを再度ビルドすることでしたが、Intelネットワークドライバーをいくつか追加しました。そのため、カスタムカーネルが必要です。 元のfglrx-driverでxserverを起動しようとすると、実行中にセグメンテーション違反が発生します startx ここに私の/etc/X11/xorg.conf: Section "Monitor" Identifier "Monitor0" EndSection Section "Device" Identifier "Device0" # Driver "vesa" # ^- with this option it works Driver "fglrx" EndSection Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 16 SubSection "Display" Depth 16 Modes …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.