• 締切済み

セグメンテーション違反

hpのRED HAT LINUXのワークステーションを導入したのですが、 emacsを立ち上げて、文字を打とうすると、「セグメンテーション違反です」 といってemacsが落ちてしまうのですが、どうしてなのでしょうか? よろしくお願いいたします。

  • hpPc
  • お礼率14% (3/21)

みんなの回答

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.1

まず、RedHat Linuxのバージョンぐらいは示しましょう。 次に、その事象は、いかなる状態でも100%再現しますか? もしそうだとすると、かなり異常な事態だと思います。システム導入時に深刻なミスがあったのかもしれません。 そうでないのなら、もっと再現条件を絞り込まないと、原因を探ることはできないでしょう。  ・ユーザーを変えても再現するか?(root と一般ユーザーなど)  ・デスクトップ環境あるいはWindow Managerを変えても再現するか  ・GUIを英語環境で起動しても再現するか? などなど

関連するQ&A

  • セグメンテーション違反について

    C言語であるプログラムを作っています。コンパイルは上手くできるのですが、実行するとセグメンテーション違反と出てしまいます。それもセグメンテーション違反と出るときと出ないときがあり困っています。そこでプログラム中のどこがセグメンテーション違反を指しているのか知りたいのですが、何かセグメンテーション違反の場所を教えてくれるようなオプションはないでしょうか? プログラムソースを見てもらうのが一番いいと思いますが、行数が1000行を超えているので断念しました。OSはLinuxでコンパイラはgccです。どなたかご教授お願いします。

  • セグメンテーション違反とは??

    linuxでC言語のプログラムを構築しています。 gccでコンパイルしたときにセグメンテーション違反という エラーが出てしまいます。 セグメンテーション違反とは一体なんの ことなんでしょうか? メモリのことだと思ってるんですが、原因がよくわかりません。C言語初心者なので わかりやすく教えて頂けるとありがたいです。

  • PHPのセグメンテーション違反に対する例外処理について

    PHPのセグメンテーション違反に対する例外処理について 再帰呼び出しのプログラム(error_seg.php)を作成し、Linuxのシェルで  $ php error_seg.php と実行しました。 実行環境: PHPのバージョン:5.2.10 Linuxのバージョン:2.6.18-164.15.1.el5 (mockbuild@builder16.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Wed Mar 17 11:37:14 EDT 2010 プログラムは下記の通りです。 <?php $cnt=0; function func(){ global $cnt; $cnt++; print $cnt . "回目の呼び出し\n"; func(); } try{ func(); }catch(Exception $e){ echo "例外発生:" . $e->getMessage()."\n"; } ?> ※このプログラムは、   http://d.hatena.ne.jp/syonbori_tech/20090414/1239717538  のサイトを参考にして作りました。 この結果、  1回目の呼び出し  2回目の呼び出し  ・・・  26187回目の呼び出し  26188回目の呼び出し  セグメンテーション違反です と表示され、セグメンテーション違反を再現させました。 ※何回目でセグメンテーション違反が発生するかは、  その都度異なります。 プログラム中で、try-catchの例外処理を入れたのですが、 例外処理されないようです。セグメンテーション違反に対して 例外処理をすることはできないのでしょうか。 できるとすれば、どのように記述をすればよいでしょうか。

    • ベストアンサー
    • PHP
  • セグメンテーションエラー?

    Linuxを勉強しようと思って Red Hat Linux 7.3入門キットという本を買って、 読みながらインストールして起動してみると、 いきなり アプリケーションエラー「Panel」プロセス 1231 って出てきます。 それでその下にセグメンテーションエラーです、って言われました。 どうやらWindowsでいう、一番下のタスクバーが出てこないみたいなんですが。 何が悪くて、どう解決すればよいのかさっぱり分かりません。 ログアウトすりゃ出来やしない状況です。 まぁ、いざとなりゃ電源ぶち切りゃ良いんですけど、 やっぱしやりたくない。 どなたかヘルプ下さい。

  • 圧縮プログラムを実行すると「セグメンテーション違反」と出る。

    プログラムをチェックして頂きたいのですが、煩雑なので時間に余裕のある方、お願いします。 使用OSはRED HAT LINUXです。 本に載っていたCのハフマン符号化プログラムをviで丸移しし、コンパイルしました。"プログラム名 圧縮対象データ名 圧縮後データ名"という形で実行するのですが、「セグメンテーション違反」と出てしまいます。使ったのは8kB程度のjpg画像でした。 原因をお教え願います。

  • セグメンテーション違反について

    現在、FORTRANを使ってプログラミングを行っています。 プログラムを作って、コンパイルまではうまくいき、いざファイルを実行してみると、「セグメンテーション違反です」という文字が出てしまいました。 いったい何が原因でそのような現象が起こってしまったのでしょうか。 ご教授願えればと思います。

  • c++でセグメンテーション違反

    c++言語を勉強しているものです。 配列を関数の引数として扱うプログラムを作ろうとしているのですが、 コンパイルが通ったかと思えば実行すると 「セグメンテーション違反です」 と表示されて異常終了してしまいます。 原因がさっぱりわかりません。 OSはLinux(RED HAT ENTERPRISE LINUX 5)、コンパイラはg++(バージョン 4.1.2)です。 これがソースコードです。 #include <iostream> using namespace std; #define BUFSIZE 1024 #define MSG "msg" void test(char buf[]) { //bzero(buf,BUFSIZE); LEGACY memset(&buf, 0, BUFSIZE); sprintf(buf, "%s\n", MSG); cout << buf; cout << "(Terminated)" << endl; return; } int main() { char buf[BUFSIZE]; test(buf); return 0; }

  • windowsワークステーションにCentOS

    ヒューレットパッカードのワークステーション xw6600をサーバー用途で購入しました。 CentOSを組み込んでwebサーバーとして使用する予定です。 ところが、ヒューレットパッカードのワークステーションはwindows用とlinux用が分かれており、当方が購入したのはwindows用だったため、インストールできません。 CentOSを書きこんだDVDドライブでブートを掛けても、windowsが立ち上がってしまいます。 取扱説明書を読むと、Red Hat Enterprise Linux 5 のインストールについては専用ドライバがあるようです。 当方は、Red Hat Enterprise Linux 6 のクローンである CentOS6をインストールしたいと考えていますが、もしダメであればRed Hat Enterprise Linux 5 のクローンであるCentOS5でも構いませんが、Red Hat Enterprise Linuxは考えていません。 対応方法についてご教授頂きたくお願い致します。

  • emacsの色、

    Linux Red Hat 7.2でemacsを使っているのですがバックカラーとフォントカラーが気に入らないので変えたいです。どこをいじればいいのでしょうか? お願いします。

  • セグメンテーション違反について教えてください。

    2つの文字列s、tを入力して 、sの中からtを検索し、一致したらsからtを削除したものを結果に出すという問題です。たとえば、s = a v a b c a 、t = a b c とすると、sからa b cが削除され、a v aと結果が表示されます。 ちなみに条件として、s、tとも配列の大きさが80となっており、出力用の文字列out[ ]も同様です。 また、文字列の入力は50字に制限されています。 ロジックを何とかつかんだ後、以下のようにコードで書いたのですが、セグメンテーション違反になってしまいます。 (1)まず、2行何か書かなければ「文字列を入力して下さい」が表示されません。 (2)「文字列を入力して下さい」「削除する文字列を入力したください」は表示されますが、その後の「削除後の文字列」とその結果が表示されません。 (3)その代わり、セグメンテーション違反が出ます。 たとえば、こんな感じで表示されてしまいました。 /************************************************/ 12 12 文字列を入力して下さい。(50字) :asd 削除する文字列を入力して下さい。(削除) :a セグメンテーション違反です /************************************************/ このとき、どこを直せばいいのでしょうか? 1 #include <stdio.h> 2 #include <string.h> 3 4 #define NULLB '0' /* 入力制限 */ 5 6 int main(int argc , char *argv[]) 7 { 8 /*********各変数の宣言*********/ 9 char s[80] ; 10 char t[80] ; 11 char out[80] ; 12 int s_len ; 13 int t_len ; 14 int out_len ; 15 int s_index ; 16 int t_index ; 17 int out_index ; 18 19 /******************************/ 20 21 fgets(s , 50 , stdin) ; 22 fgets(t , 80 , stdin) ; 23 24 25 printf("文字列を入力して下さい。(50字) :" ) ; 26 scanf("%s",&s) ; 27 s_len = strlen(s) ; 28 29 30 printf("削除する文字列を入力して下さい。(削除) :") ; 31 scanf(" %s",&t) ; 32 t_len = strlen(t) ; 33 34 35 /********各変数の初期化********/ 36 memset(s , '\0' , sizeof(int) *80) ; 37 memset(t , '\0' , sizeof(int) *80) ; 38 memset(out , '\0' , sizeof(int) *80) ; 39 s_index = 0 ; 40 t_index = 0 ; 41 out_index = 0 ; 42 43 /******************************/ 44 45 if( s_len >= t_len) 46 { 47 48 /********外側のループ********/ 49 while(s_index < s_len) 50 { 51 /********内側のループ********/ 52 while(t_index < t_len) 53 { 54 if( (s_len - s_index) >= t_len) 55 { 56 if( s[s_index + t_index] == t[t_index]) 57 { 58 if(t_len - t_index ==1) 59 { 60 s_index += t_len ; 61 } 62 else 63 { 64 continue ; 65 } 66 t_index ++ ; 67 } 68 else 69 { 70 out[out_index] = s[s_index] ; 71 out_index++ ; 72 s_index++ ; 73 74 break ; 75 } 76 } 77 else 78 { 79 strncpy(out, s , (s_len-s_index + 1 )) ; 80 } 81 } 82 /****************************/ 83 } 84 /****************************/ 85 } 86 else 87 { 88 strcpy( out, s) ; 89 } 90 91 printf("\n削除後の文字列: %s": ); 92 93 return 0 ; 94 }