問題タブ [watchpoint]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - dbxでハードウェアウォッチポイントを設定するにはどうすればよいですか?
Solarisのdbxでメモリが変更されたことを検出する必要があります。私はgdbでこれをで行うことを知っていwatch <memoryLocation>ます。ただし、現在dbxを使用しているため、dbxでハードウェアウォッチポイントを設定する方法を知る必要があります。ハードウェアウォッチポイントを設定するためのdbxコマンドとは何ですか?
linux - プロセス内からハードウェアウォッチポイントを設定するにはどうすればよいですか?
同じプロセス内から、プロセス内の変数にハードウェアウォッチポイントを設定したいと思います。それは可能ですか?どうすればいいのですか?
Linux2.6.32カーネルとPowerPCA2プロセッサを使用します。
animation - Cocos2d CCAnimate は、すべての変数がまだ生きているときに EXC_BAD_ACCESS を返します
タンク ゲームを作成していますが、Cocos2d CCAnimate に問題があります。具体的には、CCAnimation 変数が自然にデータを失っています。
それらは、タンク オブジェクト (tank.m) のステート チェンジャーで使用されます。
「アクション」はタンクの .h ファイルで事前定義されています - 「id action;」
ゲームが初期化されると、タンク (4 つある) は問題なく初期化され、すべての問題なく「kStateIdle」に設定されます。
次に、GameEngine のメイン ループが更新のためにタンクを呼び出します - タンクの速度をテストし、タンクがまだ移動していないことやダメージを受けていないことを確認し、状態が「kStateMoving」に変更されます -
しかし、ゲームが始まると
[CCAnimate actionWithAnimation: movingAnim restoreOriginalFrame:NO];
Cocos2d が「CCActionInterval」の「EXC_BAD_ACCESS」でクラッシュします (デバッガーは _cmd を「initWithAnimation: restoreOriginalFrame」として報告します)。
その理由は、CCAnimation の「movingAnim」(および idleAnim) が突然破損したためです。デバッガで調べると、メモリ アドレスはあるのに、フレームの値が報告されません。タンクが初期化されたとき、それらはすべて正常でした。そして、それらはすべてプレイヤータンクに問題ありません。それらを解放するものは何もありません (Dealloc メソッドからも削除しました)。
tank.h ヘッダー ファイルで (単原子、保持) プロパティとして定義しています。
それで、彼らはどこに行ったのでしょうか?それらにウォッチポイントを設定する方法はありますか? (私はXcode 4.3.2を持っているので、メニューには何もありません..または、データを保持するように定義する方法はありますか?
乾杯!
カール
(PS.うわー!そして、3259 度で計算された角度を取得し始めます。頭をかき、数字をトレースし始めます (それらを見るたびに通常に戻ります)。バム!Xcode は完全に閉じます。
エディター自体がぐらつき始めると、プログラムをデバッグするのがかなり難しくなります!)
debugging - How can I find out what is changing an object (or a simple variable) in Xcode 4 / lldb?
In some debuggers this is called "setting a trap" on a variable. What I want to do is trigger a breakpoint on any statement that changes the object. Or changes a property of the object.
I have an NSMutableDictionary that gets a value/key added to it but I can't find any statement that could be doing that.
gdb - GDB: プログラムでウォッチポイントを削除する
ウォッチポイント番号を知らずにウォッチポイントを削除することはできますか?
ブレークポイントにアタッチされたコマンドを使用して、メモリ位置にウォッチポイントを設定しています。別のブレークポイントでウォッチポイントをクリアしたいのですが、ウォッチポイント番号なしでウォッチポイントをクリアする方法がわかりません。メモリ位置ごとにウォッチポイントを削除できるコマンドはありますか?
c++ - XCode 4.5 ウォッチポイントが機能しない
接続された iPad 2 でアプリを実行して、iOS の Xcode 4.5 で C++ コードをデバッグしようとしています。
コードに通常のブレークポイントを設定し、ヒットしたら、ローカル変数を確認し、変数をクリックして、[Watch xxxxx] を選択します。
lldb コンソールには次のように表示されます。
エラー: m_step のウォッチポイントを作成できませんでした
次のコマンドを使用して、コンソールで手動で設定しようとしても同じ結果になります。
wsvxxxxx
私は得る:
エラー: Waspoint の作成に失敗しました (addr=0x..... size=4) エラー: gdb ウォッチポイント パケットの送信に失敗しました
LLDB を使用して、デバッグ構成で実行しています。他に確認すべきことがあるかどうかの手がかりはありますか?
編集:ここに私の設定があります:

javascript - JavaScript の無名関数で変数を監視する
特定の変数がいつ変更されたかを判断したい。このコードを使用して、アクセスできる任意のオブジェクトの任意のプロパティを監視することに成功しましたが、次のように宣言された変数に使用できますか?:
確かAに のプロパティにはなりませんwindow。2 行目から 5999 行目までの無名関数オブジェクトのプロパティでしょうか? したがって、関数に名前を付けて参照できるようにするwatchと、Avar/prop で何らかの方法で使用できますか?
変数が設定される場所を把握するために利用できる他の方法は何ですか?
c - スタック破壊エラーの問題のあるコードを検出する方法
複雑なプログラムで、以下に貼り付けたスタック破壊エラーが発生しました。どこで発生しているのかわからなくて困っています。printf-debugging を使用して関数を見つけたところ、関数の戻り時に実際にチェックが行われることに気付きました (戻りの直前の printf は実行されますが、関数呼び出しの直後はそうではありません)。
ただし、これは非常に大きな機能です。私はそれをすべて読みましたが、スタックオーバーフローの可能性に気づきませんでした。したがって、バグがどこにあるかをより正確に見積もる必要があります。これをさらにデバッグするにはどうすればよいですか?
スタック破壊検出メモリにデバッガーのウォッチポイントを追加できれば、関数リターン時ではなく、破壊時に実行を中断するのが簡単だと思います。もしそうなら、どうすればこれがどのメモリかを知ることができますか?
ソースを確認したい場合は、スタック オーバーフローのスタック破壊に関する質問を参照することをお勧めします。私が使用しているコードを本当に見たい場合は、freedink のソースを入手してください (問題のある関数は updateFrame です)。
アップデート
gcc-patches リストでは、この問題は2009 年に議論されました。しかし、結論には達していないようです。少なくとも、gdb で「info locals」と言ったときに名前が表示されません (そのスレッドのどこかで提案されているように)。誰かがこれを見つける方法を教えてくれれば__stack_guard__(それは一種の拒否されたので機能しません)、それは私の質問に答えるでしょう.
次回更新
わかりました、たくさん検索した後、まったく予期しないものを見つけました。スタック バックトレースからわかるように、libSDL 関数を終了するときにスタック破壊が検出されます。通常、SDL 関数は正常に動作し、freedink はバグだらけです。そのため、SDL のバグに遭遇したとは思いもしませんでした。しかし、それは私がしたようです。midiファイルを再生しようとしています。別の midi ファイルをその場所にコピーすると、プログラムは正常に動作します。
私の現在の問題は解決しましたが、私の質問はまだ答えられていません。スタック バックトレースは、スタックが破壊された関数を指していますが (そのため、思ったより便利です)、ガードのアドレスを提供していないため、(ウォッチポイントの設定にも) 役立つ場合があります。
c++ - LLDB で変数への最初の書き込みを見つける
LLDB を使用して大規模なプログラムをデバッグしていboolますが、どこでも使用され、一般に extern として参照される変数が 1 つあります。しばらくデバッグしてきましたが、ブレークポイントをどこに設定しても、値は常にtrueです。この値が設定されている場所を見つけたいと思います-コードを検索して、その変数の割り当てごとにブレークポイントを設定しようとしましたが、それらのどれもトリガーされないようで、後のブレークポイントでその値は常にtrueです。変数への最初の書き込みを特定する方法はありますか?
java - Java Eclipse での呼び出し元による条件付きブレークポイント
Eclipse デバッガーの Java プログラムでウォッチポイントを使用して値の変更を追跡しようとしています。クラス階層はかなり複雑で、私が追跡している値はコンテナーにラップされており、多くの場所で使用されています。
より具体的には、私が追跡しSizeRequirementているプロパティを持つコンテナがあります。minimumこのクラスは、コンポーネントのサイズの要件を定義するために、多くのコンポーネントの多くの場所で多くのレイアウト マネージャーによって使用されます。特定のレイアウトマネージャーとその中の特定のコンポーネントに対して値が変更/設定される正確な呼び出しをキャッチする必要があります。呼び出し元でブレークポイントをフィルタリングすることは可能ですか? いくつかの抽象的なコードを使用して問題を説明しようとします。
ウォッチポイントをオンに設定し、クラス A によって設定され、B による呼び出しを無視するvalue場合にのみ、ブレークポイントを一時停止するようにします。value
さらに悪いことに、クラスSizeRequirementはスイング ライブラリの一部であり、コードに深く統合されているため、継承を使用して、追跡したい正確な場所にある子に置き換えることはできません。
編集
これは、条件付きブレークポイント条件として使用したものです。信じられないかもしれませんが、うまくいきます。:)