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

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

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

こんにちは! 現在、GDBを使用しています。 変数の値を変更する方法を教えてください。 普通、変数の値を変更する場合、 (gdb)set var 変数名=変更したい値 で変更できると思うのですが、 構造体内のある変数を変更する場合はどのようにすればよろしいでしょうか? 例えば下記の場合、 (gdb)print 構造体名.変数名 $12 = "abab" (gdb)set var 構造体名.変数名=変更したい値 と入力すると、下記のエラーメッセージが出ます。 [Too many array elements] 何は方法はありますでしょうか? 宜しくお願いいたします。

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

  • ベストアンサー
  • 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

  • 構造体からレコードセットへの代入

    下のような構造体があり、その値をレコードセットに代入したいと思います。 構造体内の変数名とレコードセットのフィールド名が同じなので名前を 利用して簡潔に書けないかと思うのですが、これは可能でしょうか? '構造体 Type Product  Price As Long  Name As String  Size As Single End Type '変数の宣言 Dim Car As Product 'レコードセットへの代入 With Product  RS("Price").Value = .Price  RS("Name").Value = .Name  RS("Size").Value = .Size End With

  • DOSバッチで変数の値を変数名に設定したいのですが、可能でしょうか?

    DOSバッチで変数の値を変数名に設定したいのですが、可能でしょうか? 例として、以下のようにVARという変数に対して、ある文字列を設定し、その文字列の名前の変数の値を別の変数に代入したいのです。 set VAR="TMP" if /i "%VAR%"=="TMP" (SET TEST=%%VAR%%) echo %TEST% ここで求めている挙動は、SET TEST=%%VAR%%の命令によって SET TEST=%TMP% → SET TEST=C:\Windows\Temp のように展開されればいいのですが、実際はSET TEST=%VAR%となってしまいます。 なにか良い方法がないでしょうか?

  • javascriptで変数名

    javascriptで変数名を下記のような titleは同じでその後ろに1,2と生成する変数名を forなどで動的に生成するにはどうしたらいいのでしょうか。 生成した変数名に値を入れたいです。 var title1; var title2;

  • 同様の値があるか判別するには?

    ショッピングカートを作っており商品情報を以下のような セッション配列で管理しています。 Array ( [set] => Array ( [0] => Array ( [key] => 商品名A [num] => 1 [price] => 1980 ) [1] => Array ( [key] => 商品名B [num] => 1 [price] => 2980 ) [2] => Array ( [key] => 商品名C [num] => 1 [price] => 3980 ) ) ) やりたいことは既に持っているセッションの['key']と商品名の 変数が同様かどうかを判別し同様の値があった場合となかった 場合で分岐しそれぞれの処理をしたいです。 分岐後の処理はなんとかなるのですがどうやって判断すれば いいものかわかりません^^; $set = 'ここに商品名がはいります'; if (!count($_SESSION['set'])) { // セッションカウントがない場合 // (1つ目の商品をカートに入れた場合) // 値設定 $n = 0; $_SESSION['set'][$n]['key'] = $set; // その他の処理 } else { // セッションカウントがある場合 // (2つ目以降の商品をカートに入れた場合) // 値設定 $n = count($_SESSION['set']); if (!array_search($set, $_SESSION['set'][$n])) { // ここで同様の値があるか判別したい } if (***) { // 同様の値がある場合の処理 } else { // 同様の値がない場合の処理 } } 宜しくお願い致します。

    • 締切済み
    • PHP
  • STLのvectorで作った配列をメンバ変数にする場合は。。。

    C++初心者です。 STLのvectorで作った配列をメンバ変数は 以下のように宣言し、 class Array { public: vector<int> array; void Set(); } Array::Setのメンバ関数でarrayに値をセットします。 そして、メインからarrayを参照しようとしましたが 値が入っていませんでした。 メンバ変数の宣言の仕方が良くないのですか?

  • クラスのプロパティに構造体を使いたい。

    VB6+SP5にて開発しております。 「クラス名.構造体名.変数名 = 値」といった感じで構造体をプロパティとして使用できればと考えているのですが、単純に構造体を定義しただけでは駄目なようです。実現は無理なのでしょうか?よろしくお願いします。

  • 変数名での条件分岐は可能でしょうか? 順番並替たい

    下記のような変数を、「並べ替えたい順番」に応じて、 「希望結果」のように導き出したいのですが、どうすればよいでしょうか? 変数名で、条件分岐とか出来ないでしょうか? $id1=9; $zz1=6; $id2=8; $zz2=5; $id3=7; $zz3=4; ■並べ替えたい順番例 $order= array("3,1,2"); … 数字は重複しない前提 ※1番目が3、2番目が1、3番目が2 ・「1の数字が付いた変数の値」を、「3の数字が付いた変数の値」へ変更したい ・「2の数字が付いた変数の値」を、「1の数字が付いた変数の値」へ更新したい ・「3の数字が付いた変数の値」を、「2の数字が付いた変数の値」へ更新したい ■希望結果 $id1=7; $zz1=4; $id2=9; $zz2=6; $id3=8; $zz3=5;

    • ベストアンサー
    • PHP
  • javascript 配列 変数名「array 」

    初歩的な質問失礼します。 現在jQueryを勉強しているjavascript初心者です。 教本の配列の項目で、変数名に「array」とありました。 ( var array =[ 100, 200, 300]; といった感じです。 ) これは配列を使う際のいわゆる通例?定番?的な変数名みたいなもので、array自体に意味は無いと考えてよいのでしょうか? すっきりしないのでどなたか教えてくださると助かります!

  • gdbデバッガって?

    「gdbデバッガでスタックトレースを解析して、どこでアプリケーションが落ちているか解析してください。」 と言われました。 はっきり言って、何を言ってるのか全然分かりません・・・ プログラム開発はしたことが無いので、デバッグとかも全然わかりません。 誰かそのやり方とか、言葉説明をしてもらえませんか? 御願いします。

  • srcの使用方法について

    var array:Array = new Array(); for (var i = 0; i<images.length; i++) { array.push({src:images[i].firstChild.nodeValue}); } mcLoader.loadClip(array[i].src, thisMC); srcの使用方法について,どのような意味なんでしょうか? 構文などを調べてみても掲載させていませんでした. array[i].srcでは,配列に格納された名前を取ってきているようですが,いまいち理解できません.配列以外の変数では変数の値の名前をsrcを利用して参照することは可能なのでしょうか?

    • ベストアンサー
    • Flash