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)