• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:GDBデバッガの使い方について)

GDBデバッガの使い方について

このQ&Aのポイント
  • GDBデバッガの使い方を解説します。
  • 変数の値を変更する方法や構造体内の変数を変更する方法について説明します。
  • GDBを使用して変数の値を変更する際に発生するエラーメッセージについても解説します。

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

#1です。 >ABCD"を"EFGH"に変更したい 文字列としてセットする方法があります。 但し、char data1[4];の場合は3文字+終端NULLになりますので、 set data_info.data1="EFG" として、次に set data_info.data1[3]='H' とするしかないですね。

mr_bonta
質問者

お礼

上記の方法でやりたいと思います。 本当に早いご回答ありがとうございました。

その他の回答 (1)

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

>下記のエラーメッセージが出ます。 >[Too many array elements] 構造体は配列になっていませんか。又は、変数が配列になっていませんか。 set var 構造体名[n].変数名=変更したい値 又は set var 構造体名.変数名[n]=変更したい値 nは配列の添え字(0以上の値) で、セットできませんか?

mr_bonta
質問者

お礼

tatsu99さん、はじめまして! 早速のご回答ありがとうございます。 確かに構造体の変数は配列になっています。 教えて頂いた方法で変更できました。 ありがとうございます。

mr_bonta
質問者

補足

もう一つ質問してよろしいでしょうか?? 構造体内の変数が配列になっている場合、 一気に値を変更、出来ないのでしょうか?? <GDB> (gdb)print data_info.data1 $1 = "ABCD" ※この”ABCD"を"EFGH"に変更したい ちなみに、構造体は下記の様に定義しています。 typedef struct { char data1[4]; char date2[4]; } DATA; DATA data_info; /* 宣言 */ またまた質問で申し訳ございません。 宜しくお願い致します。

関連するQ&A

専門家に質問してみよう