2009-03-31 15 views
1

Ich möchte einen Haltepunkt setzen und will sie ausgelöst werden, wenn ein Stück Speicher (beginnen Adresse und Länge bekannt sind) geändert werden. Ich arbeite an Windows Server 2003 x64-Plattform. Entweder Lösung in Windbg oder Lösung in Visual Studio sind in Ordnung. Mein Zweck ist es zu überwachen, wenn der Speicherinhalt geändert wird.Wie setze ich den Haltepunkt auf diese Weise?

Vielen Dank im Voraus, George

Antwort

4

setting a data breakpoint Versuchen.

In Visual Studio:

  • Zum Debug >> Neue Breakpoint- >> Neue Data- Breakpoint-
  • Geben Sie die Adresse, die Sie (oder einen Ausdruck sehen wollen, die zu einer Adresse auswertet, wie & foo)
  • Geben Sie die Anzahl der Bytes ein, die an dieser Adresse angezeigt werden sollen
  • Klicken Sie auf OK, führen Sie Ihr Programm im Debugger aus, und warten Sie!
1

Nicht sicher VS, aber mit windbg Sie den folgenden Befehl

ba w Größe Adresse

Größe mit der Länge des Speichers und Adresse mit der Startadresse ersetzen können der Erinnerung.

1

Sie können set a data breakpoint aber Sie werden die Adresse des Speicherplatzes Sie interessant sind wissen müssen, bevor Sie eine solche Haltepunkt festlegen. Normalerweise stelle ich entweder einen Haltepunkt zu Beginn meines Programms oder haben den Debugger aussetzt befestigen, so kann ich die Speicheradresse der Variablen I überwachen möchten finden, dann den Datenhaltepunkt festgelegt.

2

Dies kann auch in GDB erfolgen. In GDB, das ist eine Uhr auf eine bestimmte Adresse ist (ich habe Erfolg einstellen Uhren auf die Adresse von C++ Objektelemente auf diese Weise hatte).

+0

@dicroce, wird GDB nicht auf Windows Server 2003 arbeiten? – George2

+0

Es tut wenn du Cygwin benutzt ;-) – Mawg

Verwandte Themen