Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

.Net Managed code breakpoint

4 views
Skip to first unread message

JR

unread,
Jul 2, 2008, 5:00:29 PM7/2/08
to
I have an asp.net (.net 2.0) app that has multiple app domains. I can
set breakpoints when i know the exact name of the dll, object,method
using !bpmd but what about when i don't know the name exactly? In
unmaged code i can simply use the 'x' command to view the symbols and
set the breaks such as

x ole32*!*
77793d98 ole32!ptszOleMainThreadWndClass = <no type information>
7767c6b8 ole32!ServerLocationInfo::`vftable' = <no type information>
776d3a45 ole32!CNFFTreeMutex::Release = <no type information>
77671524 ole32!_imp__CopyAcceleratorTableW = <no type information>


then bp 77793d98

Thats fairly easy. For managed code the address returned is not the
real address of the function (i think)

x *data*!*Execute*
<MSIL:048d197e> Data!BeginExecuteNonQuery (void)
<MSIL:048d196c> Data!BeginExecuteNonQuery (void)
<MSIL:048d195b> Data!BeginExecuteNonQuery (void)
<MSIL:048d194a> Data!BeginExecuteNonQuery (void)
<MSIL:048d185f> Data!BeginExecuteNonQuery (void)
<MSIL:048d184d> Data!BeginExecuteNonQuery (void)


this is not the address <MSIL:048d197e> and also, "Data!
BeginExecuteNonQuery" is not the right format for !bpmd. So my
question is how to i browse .net symbol files and get either addresses
or functions names i can use with !bpmd ?

I can go the route of dumping the domain to find module address, then
dumping module to find TypeDefToMethodTableMap address, then 'dd' the
addresses stored there so i can !dumpmt -md them and finally get to
the right address to set a breakpoint with. I just want to know if
there is an easy way to get all the info you need to set a managed
breakpoint using the X command.

thanks all

0 new messages