Locating the file that a function (not on the stack) was written in
This question came up in one of the internal aliases a couple days ago. While debugging, how do I find the source for a particular function that is not on the stack? There are a couple caveats to consider first:
- You must have symbols that include source information (public symbols have this information stripped out of them)
- You must have turned on loading source information.
To satisfy #2, first run .lines -e and then you have several choices:
- use ln with name of the function
- 0:000> ln RuntimeTest!CUIElementName::CUIElementName
d:\dev\acw\enduser\nuiux\acw\activecontentwizard\unmanaged\property.cpp(1593)
(00857050) RuntimeTest!CUIElementName::CUIElementName | (008570e0) RuntimeTest!CUIElementName::AddRef
Exact matches:
RuntimeTest!CUIElementName::CUIElementName (void)
- 0:000> ln RuntimeTest!CUIElementName::CUIElementName
- use u with the name of the function
- 0:000> u RuntimeTest!CUIElementName::CUIElementName
RuntimeTest!CUIElementName::CUIElementName [d:\dev\acw\enduser\nuiux\acw\activecontentwizard\unmanaged\property.cpp @ 1593]:
00857050 8bff mov edi,edi
00857052 55 push ebp
...
- 0:000> u RuntimeTest!CUIElementName::CUIElementName
- use lsa with the name of the function and then lsc
- 0:000> lsa RuntimeTest!CUIElementName::CUIElementName
...
1590: }
1591:
1592: CUIElementName::CUIElementName()
> 1593: {
...
0:000> lsc
Current: dev\acw\enduser\nuiux\acw\activecontentwizard\unmanaged\property.cpp(1599)
- 0:000> lsa RuntimeTest!CUIElementName::CUIElementName