2016-05-13 11 views
3

lldbで条件付きブレークポイントを設定したいとします。 ... LldbをLldb:文字列の等しい条件付きブレークポイントを条件として設定する

breakpoint set -f myFile.cpp -l 123 -c 'a==3' 

しかし、私の場合、私はstd::stringオブジェクトが特定の文字列値に等しいかどうかをテストしたいが、これは

breakpoint set -f myFile.cpp -l 123 -c 'a=="hello"' 

が動作しないこと:これは通常、-cオプションを使用して行われます(gdbはエラーを返しますが)ブレークポイントに達すると条件文字列を無視して早すぎます...

この質問は、this oneに似ていますが、gdbの代わりにlldbを使用しています。 3.4

答えて

2
(lldb) br s -n main -c '(int)strcmp("test", var)==0' 
Breakpoint 1: where = a.out`main + 11 at a.c:3, address = 0x0000000100000f8b 
(lldb) br li 
Current breakpoints: 
1: name = 'main', locations = 1 
Condition: (int)strcmp("test", var)==0 

    1.1: where = a.out`main + 11 at a.c:3, address = a.out[0x0000000100000f8b], unresolved, hit count = 0 

(lldb) 

あなたは事実の後に条件式を追加することができます解決策が提示

breakpoint set -f myFile.cpp -l 123 if strcmp(a, "hello")==0 

は使用lldb

Lldbバージョンで有効であるためにそこにいないようです。同様

(lldb) br s -n main 
Breakpoint 1: where = a.out`main + 11 at a.c:3, address = 0x0000000100000f8b 
(lldb) br mod -c '(int) strcmp("test", var) == 0' 
(lldb) br li 
Current breakpoints: 
1: name = 'main', locations = 1 
Condition: (int) strcmp("test", var) == 0 

    1.1: where = a.out`main + 11 at a.c:3, address = a.out[0x0000000100000f8b], unresolved, hit count = 0 

(lldb) 

breakpoint modifyはどれも(私はここで何をしたかである)が指定されていない場合は、最新のブレークポイントをデフォルト、最後にブレークポイント番号のブレークポイント数/リストを取ります。

関連する問題