2017-02-22 7 views
0

ちょうどlldbに切り替えたので、gdbのwatch iと同等の処理をしようとしています。lldbでforループ内の変数iを見る

(lldb) f 
frame #0: 0x0000000100000664 a.out`MaxPairwiseProduct(numbers=size=5) + 4 at max_pairwise_product.cpp:19 [opt] 
    16  // Find max value in vector 
    17  
    18  for (int i=1; i<numbers.size(); i++) { 
-> 19  if (numbers[i] > numbers[i-1]) { 
    20   second_max = max; 
    21   max = numbers[i]; 
    22   if (numbers[i] < max && numbers[i] > second_max) 
(lldb) 

あなたが上見ることができるように、int iは既に宣言されています。私は

(lldb) watchpoint list -b 
Number of supported hardware watchpoints: 4 
No watchpoints currently set. 
(lldb) 

今私がいる、これは、なぜ私は理解していない

(lldb) wa s v i 
error: Watchpoint creation failed (addr=0xffffffffffffffff, size=0, variable expression='i'). 
error: cannot set a watchpoint with watch_size of 0 
(lldb) 

を取得(lldb referenceによる)は、iにウォッチポイントを設定する利回りしようとしているウォッチポイント

チェック変数が宣言されています。ほとんどの問題がウォッチポイントの最大数にぶつかることに関連しているように見えるので、エラーのグーグルはあまり役に立たなかった。これは私の場合ではない。どんな助けでも大歓迎です!

答えて

0

これはおそらく、(むしろ、有益なエラーメッセージを与えていない)悪いエラーメッセージですi

+0

の値を追跡含めて、私は私がclang++ -Wall -g -o max_pairwise max_pairwise.cppにプログラムをコンパイルした方法を変更し、それは私に適切な情報を示し始め現在参照されている変数が現在の場所で使用できない場合再構築されたコマンドラインの例には最適化がありません。最初の例でそれを持っていたと思います。または、あなたは2つのラン間のプログラムの別のポイントで停止しました。あなたは間違いなくこの問題の代わりに問題が何であったかについてのエラーメッセージを受け取ったはずですが、ウォッチポイントはlldbではやや粗いです。 –

関連する問題