1. ホーム
  2. xcode

[解決済み] LLDBで配列を表示する:Xcode 4.1ではGDBの'@'演算子に相当する

2023-05-24 10:25:52

質問

ポインタによって指された要素の配列を表示したい。GDBでは、これは、ポインタされたメモリを、次のように演算子 '@' を使用して与えられた長さの人工配列として処理することによって行うことができます。

*pointer @ length

ここで length は表示したい要素の数です。

Xcode 4.1付属のLLDBでは、上記の構文は使えません。

LLDBで上記を実現する方法はないでしょうか。

どのように解決するのですか?

lldbで行う方法は2つあります。

最も一般的なのは parray lldb コマンドは COUNTEXPRESSION ; EXPRESSION が評価され、メモリへのポインタが生成されるはずです。 COUNT の項目をそのアドレスに表示します。

parray 10 ptr

ここで ptr はタイプ int * .

あるいは、ポインタを配列へのポインタにキャストすることによっても可能です。

例えば、もしあなたが int* ptr があり、それを10個の整数の配列として表示したい場合は、次のようにします。

p *(int(*)[10])ptr

標準的なCの機能のみに依存しているため、このメソッドはプラグインや特別な設定なしで動作します。また、GDBやCDBのような他のデバッガでも同様に動作しますが、それらも配列を表示するための特別な構文を持っています。