MANAGED DEBUGGING with WINDBG. Setting a Breakpoint. Part 2
Hi all,
This post is a continuation of MANAGED DEBUGGING with WINDBG. Setting a Breakpoint. Part 1.
SETTING A BREAKPOINT. Part 2
· We set the breakpoint:
Regardless if method is jitted, we can set a breakpoint on a method by using its Method Descriptor:
0:004> !BPMD -md 00766d60
MethodDesc = 00766d60
Setting breakpoint: bp 00850A08 [WindowsApplication1.Form1.InitializeComponent()]
If it’s jitted, we can use its jitted code address:
0:004> bp 00850a08
And if we know the name of the method and in which module we can find it, we can set the breakpoint directly like this:
0:004> !BPMD WindowsApplication1 WindowsApplication1.Form1.InitializeComponent
Found 1 methods...
MethodDesc = 00766d60
Setting breakpoint: bp 00850A08 [WindowsApplication1.Form1.InitializeComponent()]
We can check that the breakpoint has been correctly set:
0:004> bl
0 e 00850a08 0001 (0001) 0:**** WindowsApplication1!WindowsApplication1.Form1.InitializeComponent()
If the method is not jitted, the breakpoint will be set whenever it gets jitted, so it won’t appear in the list of breakpoints until then:
0:004> !BPMD WindowsApplication1 WindowsApplication1.Form1.Button1_Click
Found 1 methods...
MethodDesc = 00766db8
Adding pending breakpoints...
0:004> !BPMD -md 00766db8
MethodDesc = 00766db8
Adding pending breakpoints...
· We can enable, disable and remove the breakpoints:
0:004> bl
0 e 00391940 0001 (0001) 0:**** WindowsApplication1!WindowsApplication1.Form1.get_Button6()
1 e 00390a08 0001 (0001) 0:**** WindowsApplication1!WindowsApplication1.Form1.InitializeComponent()
0:004> bd *
0:004> bl
0 d 00391940 0001 (0001) 0:**** WindowsApplication1!WindowsApplication1.Form1.get_Button6()
1 d 00390a08 0001 (0001) 0:**** WindowsApplication1!WindowsApplication1.Form1.InitializeComponent()
0:004> bc 0
0:004> bl
1 d 00390a08 0001 (0001) 0:**** WindowsApplication1!WindowsApplication1.Form1.InitializeComponent()
0:004> be 1
0:004> bl
1 e 00390a08 0001 (0001) 0:**** WindowsApplication1!WindowsApplication1.Form1.InitializeComponent()
Next post: MANAGED DEBUGGING with WINDBG. Setting a Breakpoint. Part 3.
Index: MANAGED DEBUGGING with WINDBG. Introduction and Index.
Regards,
Alex (Alejandro Campos Magencio)