Den 13-09-2011 16:52, Hans-Peter Diettrich skrev:
Michael Schnell schrieb:
On 09/12/2011 11:16 PM, Hans-Peter Diettrich wrote:
 - watchpoints. break when data at memory address changed.
 I've seen applications crawl when such a feature was used :-(

This is bound to happen unless the CPU provides support for this.

It's not the CPU, it's more the MMU which can help in finding changed (global) variables. When the static data segment supports interrupts on write, a debugger only has to check whether the affected address in the watch list. Doing such checks on *every* write to memory (stack!?) requires many more lookups.

Hardware support for writes to arbitrary memory addresses is restricted to very few addresses, not really useful.
How many times do you think you need more than 1-2 watchpoints? Lots of breakpoints I can understand, but I've never found many uses for watchpoints.
That's why Delphi normally checks for changed values only when a breakpoint is hit, not on every instruction.
That isn't really much of a watchpoint then, unless you single step.
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to