• 締切済み

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

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

みんなの回答

回答No.2

後々のことを考えると、gdbを使ったデバッグ方法を覚えた方が 良いと思います。 異常終了(セグメンテーションフォールトもそうです)した時に コアファイルが出来ているのであれば、 >gdb (実行プログラムバイナリ) (コアファイル) で、終了時の状況が調べられます。 手っ取り早い方法として、ソースのいたるところにデバッグ用に printf関数を入れる等すれば、異常終了箇所がある程度特定出来ると思います。

noname#18893
質問者

お礼

すみません!ソースコードを載せたサイトのアドレスを文中に入れたら、 OKWAVE側に削除されてしまいました。 でも、参考にさせていただきます。ありがとうございました。

回答No.1

これだけの情報で原因を特定するのは無理です。 再現性のある不具合ならばGDBでのデバッグを試みられてはいかがでしょうか? GDBで1ステップ実行させて、どの箇所でセグメント違反が起きているかが解ります。 GDBの使い方は検索すれば山ほどありますし、これをマスターしていると後々重宝しますよ。

noname#18893
質問者

お礼

すみません!ソースコードを載せたサイトのアドレスを文中に入れたら、 OKWAVE側に削除されてしまいました。 でも、参考にさせていただきます。ありがとうございました。

関連するQ&A