16

Objective-Cプログラムをデバッグしようとしていますが、unsigned long long変数を16進数で出力する必要があります。lldbデバッガーを使用しています。

short16進数として印刷するには、次を使用できます

(lldb) type format add --format hex short
(lldb) print bit
(short) $11 = 0x0000

しかし、私はそれを動作させることはできませんunsigned long long

// failed attempts:
(lldb) type format add --format hex (unsigned long long)
(lldb) type format add --format hex unsigned long long
(lldb) type format add --format hex unsigned decimal
(lldb) type format add --format hex long long
(lldb) type format add --format hex long
(lldb) type format add --format hex int

違いがあれば、シミュレーターでiOSアプリを実行しています。

4

3 に答える 3

41

書式文字を使用できます。GDB ドキュメントへのリンク (LLDB でも機能します): https://sourceware.org/gdb/current/onlinedocs/gdb/Output-Formats.html#Output-Formats

(lldb) p a
(unsigned long long) $0 = 10
(lldb) p/x a
(unsigned long long) $1 = 0x000000000000000a
于 2015-03-05T08:43:40.700 に答える
12

type format add は、型名が 1 つの単語であることを想定しています。引数が複数の単語である場合は、引数を引用符で囲む必要があります。例えば

   2    {
   3      unsigned long long a = 10;
-> 4      a += 5;
   5      return a;
   6    }
(lldb) type form add -f h "unsigned long long"
(lldb) p a
(unsigned long long) $0 = 0x000000000000000a
(lldb) 
于 2012-09-23T10:35:00.407 に答える
1

ドキュメントの残りの部分を読んだ後、次のようなことが可能であることがわかりました。

// ObjC code
typedef int A;

それから、

(lldb) type format add --format hex A

これは私に次のアイデアを与えましたtypedef unsigned long long BigInt

// ObjC code
typedef unsigned long long BigInt;

それから、

(lldb) type format add --format hex BigInt

魅力のように機能します。

于 2012-09-19T09:11:22.773 に答える