2016-06-20 11 views
2

デモのために、following section of this videoを見てください。Visual Studioでデバッグ中に命令ポインタを逆方向にドラッグ

基本的に、私はこれは私が思っていたのVisual StudioのCommunity Edition 2015で可能です知っている:

A)のIntelliTraceと「歴史的なデバッグ」に関連した本ですか? b)これを行うと副作用がありますか?それとも、これは命令を後ろに移動するだけですか?

+0

命令ポインタを移動するだけです。確かに副作用があるかもしれませんが、あなたのソースには見えない必要なコードを間違ってスキップするかもしれません。良い例は[ここにある](http://stackoverflow.com/questions/28896531/clr-system-nullreferenceexception-when-forcing-set-next-statement-into-if-bl)です。 –

答えて

2

命令ポインタを後ろに移動するだけで、それはあなた自身の言葉を使うことです。

  • どれ副作用は、すでにあなたにそれをドラッグして、どこの間で発生しますが、すでに発生していますから、それをドラッグして反転することはありません。ここで

    これはことを意味します。命令の同じセクションに変更

  • すべての変数がまだ変更され、それらは、あなたがあなたがこのデバッグ支援を使用することができます

に命令ポインタをドラッグ時点で持っていたものは何でも値に反転されていません(例えば、スキップしたif文内で命令ポインタをドラッグするなどして)実行しないパスをスキップするか(実行したくないコードをスキップして命令ポインタをスキップする)、またはいくつかのコードを再実行する。

ただし、である必要があります。コードを再度実行するのが安全でない場合は、デバッグに役立たない可能性があります。

+0

ありがとう!これはお勧めの練習ですか?私はこの機能について何も見つけられませんでした。 – anemaria20

+1

「お勧めの練習」はいつもやりたいことのように聞こえますが、これはそれらの機能の1つではありません。ただし、コードを再実行またはスキップする以外のオプションがない場合があるため、この関数の使用方法、実行可能な操作、および実行できない操作を明確に理解する必要があります。たとえば、ブレークポイントが発生したポイントに戻るためにプログラム全体を再実行するのに2〜3分かかる場合は、コードにステップインする前にステップを進めすぎると、ポインタを元に戻し、F11キーを押して何でも踏み込んでください。 –

+0

ありがとう!それを前進させるのはどうですか?私はこれも可能であることを見た。逆方向と同じように機能するなら、これはgoto文のようなものだと思います。 – anemaria20

0

これは長い間可能でした。カーソルをドラッグしている場所から起きたことがすべて起こったので、本質的にそのビットを再実行します。

何かを処理したり、データベースなどに保存したりしない限り、既存の同じデータを書き込むと例外がスローされたり、一部のデータの処理が混乱する可能性があります。

設定されているすべての変数(カーソルを初期化するよりも上にドラッグしても)は、カーソルを上にドラッグした位置からの値を保持します。

関連する問題