- 締切済み
GDBでデバッグするとき文字列の中身見れますか?
Cでプログラムを書いたんですけど、コンパイルは通るが実行すると「セグメンテーション違反です」と出ます。 そこでGDBを用いてデバッグをかけましたけど文字列の中身の見方が分かりません。 つまり、p i とすれば、いまの i の値を出力しますけど、どうすれば文字列 word の中身を見せてくれるか教えてください。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- chirubou
- ベストアンサー率37% (189/502)
回答No.2
No.1 です。 どうやら gdb が2バイト文字を認識していないようですね。 「wordの中には日本語の単語」とのことですが、私は日本語の文字列を扱ったことがないので、gdb で日本語を表示できるかどうかは知りません。
- chirubou
- ベストアンサー率37% (189/502)
回答No.1
char *word = "abc"; あるいは char word[] = "abc": とかなっていたら gdb> p word abc gdb> というように文字列の中身が表示されると思います。
質問者
補足
回答ありがとうございます。 wordの中には日本語の単語が入ってるんですけど、gdb> p word と入力すると (gdb) p word $5 = "\\000\203?\202?000\000\000\000\020\000\000?\032\000М006 のように出力されます。 OSがFEDORAなんですけど、OSのせいでしょうかね?
お礼
回答ありがとうございました。