47

LLDBには便利な変数がありますか?もしそうなら、私はそれらをどのように使用しますか?そうでない場合、私が使用できる同様のものはありますか?

参照:http ://software.intel.com/sites/products/documentation/hpc/atom/application/debugger/commands143.html

4

3 に答える 3

57

私はついにそれを自分で理解しました。help exprLLDBで実行すると、次のように表示されます。

ユーザー定義変数:便宜上、または後続の式で使用するために、独自の変数を定義できます。Cで変数を定義するのと同じ方法で定義します。ユーザー定義変数の最初の文字が$の場合、変数の値は将来の式で使用できます。それ以外の場合は、現在の式でのみ使用できます。

だからexpr int $foo = 5私が欲しいものです。

于 2013-02-11T05:21:47.913 に答える
28

今日はこれに苦労しました。LLDBでObjective-C変数を処理する方法は次のとおりです。

expr UIApplication *$app = (UIApplication *)[UIApplication sharedApplication]
expr UIWindow *$keyWindow = (UIWindow *)[$app keyWindow]

など。LLDBは、呼び出しをネストせず、すべての呼び出しで明示的にリターンタイプを指定する場合に最適に機能することがわかりました。

initWithFrame:それでも、後でUIViewで作業しようとすると、セグメンテーション違反が発生します。:/

于 2013-02-13T22:27:39.213 に答える
8

次のフォームを使用してください。

(lldb) expr var

彼らのチュートリアルから:

(lldb) expr self
$0 = (SKTGraphicView *) 0x0000000100135430
(lldb) expr self = 0x00
$1 = (SKTGraphicView *) 0x0000000000000000

関数を呼び出すこともできます。

(lldb) expr (int) printf ("I have a pointer 0x%llx.\n", self)
$2 = (int) 22
I have a pointer 0x0.
(lldb) expr self = $0
$4 = (SKTGraphicView *) 0x0000000100135430
于 2012-07-30T14:14:18.280 に答える