(gdb) p var_name $1 = "varvalue"
を使用して変数の値を出力できることを知っていますgdbでデバッグ中に変数の値を設定する方法はありますか?私が使用しているドキュメントには、このコマンドがないようです。
編集
状態を変更できることを知ってから関数を呼び出すだけで、メモリ内のオブジェクトの数を増やすことができます。したがって、タイプstd::string
のオブジェクトを変更するには、次のようにassign
関数を呼び出します。
(gdb) call str.assign("New Value")
ありがとうございます。
回答
Googleは友達:
たとえば、プログラムの幅が可変の場合、「幅を設定」だけで新しい値を設定しようとするとエラーが発生します= 13 “、GDBにはコマンドセットの幅があるため:
(gdb) whatis width type = double (gdb) p width $4 = 13 (gdb) set width=47 Invalid syntax in expression.
もちろん、無効な式は `= 47″です。プログラムの可変幅を実際に設定するには、
必要な情報は、次のドキュメントにあります:
コメント
- この回答ありがとうございます!これをdouble変数で試したところ、機能しましたが、' std :: stringオブジェクトでは機能しませんでした。 std :: stringオブジェクトを変更する同様の手法はありますか?
- それらをチェックしてください: sepwww.stanford.edu/public/sep/claudio/Research / Prst_ExpRefl / …
- これ: rsquared.sdf.org/gdb/ iacv.html