Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to put a breakpoint at the end of a function in windbg, so that I dont need to edit it even if some lines have been added/deleted in the source?

I need to log some data when some functions are hit, both at the start of execution and and the end of it. While i have no problem with putting breakpoints at the start of the functions(using bu [module]!functionname, I dont know how to put a breakpoint at the end of a function, SUCH THAT i dont need to edit the breakpoint everytime i add/delete somelines from the file/function. I'm sure its a very common scenario, just that I dont know how its done !! Can anyone elucidate ?

like image 902
TCSGrad Avatar asked Apr 02 '10 10:04

TCSGrad


2 Answers

You can use the breakpoint at the start of the function to setup the breakpoint at the return address. Like this:

bu [module]!functionname "bp /1 @$ra \".echo Exit functionname ; g\"; .echo Enter functionname; g"

Caveat: this may not work if an exception is thrown in the function.

like image 192
plodoc Avatar answered Sep 20 '22 09:09

plodoc


Here is what you are exactly looking for

Get function return values and profiling information in .NET using Windbg

It is explained how to set a break-point on function return

The same is applicable for native code also.

Hope this helps.

like image 32
Naveen Avatar answered Sep 19 '22 09:09

Naveen