Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Add documentation about the new breakpoint API.

2009-08-12  Martin Baulig  <martin@ximian.com>

	* doc/README.breakpoints: Add documentation about the new
	breakpoint API.

svn path=/trunk/debugger/; revision=139769
  • Loading branch information...
commit 179c481ea98573cccbb1da2009cce259b02b6979 1 parent 6531ee2
authored August 12, 2009
5  ChangeLog
... ...
@@ -1,3 +1,8 @@
  1
+2009-08-12  Martin Baulig  <martin@ximian.com>
  2
+
  3
+	* doc/README.breakpoints: Add documentation about the new
  4
+	breakpoint API.
  5
+
1 6
 2009-08-06  Martin Baulig  <martin@ximian.com>
2 7
 
3 8
 	* classes/DebuggerSession.cs
65  doc/README.breakpoints
... ...
@@ -0,0 +1,65 @@
  1
+On August 4th, 2008, the API to insert or remove breakpoints from a
  2
+GUI has been improved significantly.
  3
+
  4
+These are the most important changes:
  5
+
  6
+* Debugger.Detach() doesn't require the target to be stopped anymore
  7
+
  8
+* DebuggerSession.AddEvent(Event) and DebuggerSession.RemoveEvent(Event)
  9
+  may be called anytime; these functions only add / remove the event
  10
+  from the session and mark it as pending, but do not activate or
  11
+  deactivate it.
  12
+
  13
+  Pending means the breakpoint may be automatically activated or
  14
+  deactivated at any time, but there is no guarantee when this will
  15
+  happen or whether this will happen at all.
  16
+
  17
+* There are two ways to activate or deactivate a breakpoint:
  18
+
  19
+  -> You to call Event.Activate(Thread) / Event.Deactivate(Thread)
  20
+     when the target is stopped, this will immediately activate /
  21
+     deactivate the breakpoints.
  22
+
  23
+  -> You call Process.ActivatePendingBreakpoints() anytime, this'll
  24
+     activate / deactivate all pending breakpoints.
  25
+
  26
+* There are three new functions in the DebuggerSession:
  27
+  ActivateEventAsync(Event), DeactivateEventAsync(Event) and
  28
+  ActivateOrDeactivateEventAsync(Event,bool).
  29
+
  30
+  These functions schedule an async activation / deactivation; you
  31
+  need to call Process.ActivatePendingBreakpoints() when done.
  32
+
  33
+Some comments:
  34
+
  35
+-> Functions which don't take a `Thread' argument do not immediately
  36
+   activate / deactivate a breakpoint.
  37
+
  38
+-> Functions which take a `Thread' argument require the target to be
  39
+   stopped and immediately activate / deactivate the breakpoint.
  40
+
  41
+-> After scheduling an async activation, the breakpoint may be enabled /
  42
+   disabled at any time, but there is no guarantee when this will
  43
+   happen and whether it will happen at all.
  44
+
  45
+   Call Process.ActivatePendingBreakpoints() to activate / deactivate
  46
+   all pending breakpoints; this will activate / deactivate all
  47
+   pending breakpoints.
  48
+
  49
+-> If you insert a source breakpoint (ie. a breakpoint which is
  50
+   identified by filename and line number) in a module that's not
  51
+   currently loaded, you need to use async activation (ie. only use
  52
+   DebuggerSession.AddEvent(Event), but not Event.Activate(Thread));
  53
+   the breakpoint will automatically be activated when the module is
  54
+   loaded.
  55
+
  56
+-> When inserting an expression breakpoint, you should use synchronous
  57
+   activation unless the expression may be evaluated in global scope
  58
+   (ie. you call DebuggerSession.AddEvent(Event) when the target is
  59
+   stopped, followed by Event.Activate(Thread)).
  60
+
  61
+
  62
+Last changed August 12th, 2009
  63
+Martin Baulig <martin@novell.com>
  64
+
  65
+

0 notes on commit 179c481

Please sign in to comment.
Something went wrong with that request. Please try again.