c ++ - Visual Studio: Hvordan stopper jeg debuggeren når en medlemsvariabel ændres?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har et program, der har en variabel, der aldrig bør ændres. På en eller anden måde ændres det. Er der en måde at få debuggeren til at stoppe, når den pågældende medlemsvariabel er ændret?

Bedste reference


Indstil et data breakpoint for at stoppe udførelsen, når nogle variable ændres.


Bryd på initialiseringen af ​​din variabel, eller et sted hvor din variabel er synlig - du skal kunne få adressen i hukommelsen. Vælg derefter Debug -> New Breakpoint -> New Data Breakpoint fra menuerne. Indtast '&var' (med var erstattet af navnet på din variabel.)


Dette vil bryde ind i debuggeren på den nøjagtige kode kode, der ændrer din variabel.


Mere dokumentation her:


http://msdn.microsoft.com/en-us/library/350dyxd0.aspx[4][5]

Andre referencer 1


Du kan indstille betinget breakpoint på steder, hvor variablen bruges.


I Visual Studio indstilles breakpoint ved at trykke på F9 når din cursor på linjen hvor du vil indstille breakpoint.

Højreklik derefter på breakpointet og vælg Tilstand.

Indtast din tilstand som


n != 5


Held og lykke.


Her er et link fra MSDN. [6]

Andre referencer 2


Hvis det ændres gennem en opgave eller anden direkte opdatering, vil data breakpoint fungere. Men hvis det ændres via andre midler - for eksempel en buffer overskrivning - jeg er ikke sikker på, om det vil fortælle dig præcis, når det sker. Bare noget at huske på.