I am debugging a Windows component and want to see all the functions of a particular DLL that they call (also in the order in which they call). I can do this by adding a component to windbg and setting breakpoints on all exported functions ( bm *module_name!* ) bm *module_name!* corresponding DLL.
This works as expected. Whenever the exported function of this DLL is called windbg, execution is interrupted and the breakpoint hit information is printed on the screen. After that, I can resume execution manually by pressing F5 or by issuing the go command.
Problem: Some dll functions must return very quickly (immediately), otherwise the component crashes. In this case, the breakpoint causes the component to fail. I can remove the breakpoint in question, but then there would be no hit log.
I looked around and found that I could run the command whenever a breakpoint hits. bm module_name!func_name ".printf \"func_name\n\";gc" But this is not possible for every exported function. The DLL has about 100 exported functions.
What can I do to record (on the screen itself) every exported function that has been deleted (even the number of the breakpoint, if there is nothing to be done). Is there a variable name that I can use in a printf command that can print a function name (or a breakpoint number if not a function name)?
source share