• 締切済み

GDBでデバッグするとき文字列の中身見れますか?

Cでプログラムを書いたんですけど、コンパイルは通るが実行すると「セグメンテーション違反です」と出ます。 そこでGDBを用いてデバッグをかけましたけど文字列の中身の見方が分かりません。 つまり、p i とすれば、いまの i の値を出力しますけど、どうすれば文字列 word の中身を見せてくれるか教えてください。 よろしくお願いします。

みんなの回答

  • chirubou
  • ベストアンサー率37% (189/502)
回答No.2

No.1 です。 どうやら gdb が2バイト文字を認識していないようですね。 「wordの中には日本語の単語」とのことですが、私は日本語の文字列を扱ったことがないので、gdb で日本語を表示できるかどうかは知りません。

yamanashij
質問者

お礼

回答ありがとうございました。

  • chirubou
  • ベストアンサー率37% (189/502)
回答No.1

char *word = "abc"; あるいは char word[] = "abc": とかなっていたら gdb> p word abc gdb> というように文字列の中身が表示されると思います。

yamanashij
質問者

補足

回答ありがとうございます。 wordの中には日本語の単語が入ってるんですけど、gdb> p word と入力すると (gdb) p word $5 = "\\000\203?\202?000\000\000\000\020\000\000?\032\000М006 のように出力されます。 OSがFEDORAなんですけど、OSのせいでしょうかね?

関連するQ&A