Hi,
I am trying to extract the inlined function details from PDB file and observed that IDiaSymbol::findInlineFrames*, IDiaSymbol::findInlineeLines* APIs are not returning any value regarding the inlined function details.
Setup Details:
- Visual Studio Professional 2013
- MS DIA SDK - Microsoft Visual Studio 12.0
- Source language: C++
- Compiler options: /c /Zi /nologo /W3 /WX- /sdl /Ox /Ob1 /Oy- /D WIN32 /D _DEBUG /D _CONSOLE /D _LIB /D _CRT_SECURE_NO_WARNINGS /D _UNICODE /D UNICODE /Gm /EHsc /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc120.pdb" /Gd /TP /analyze- /errorReport:prompt
- Function inline declared by using __forceinline
- Functions are getting inlined as expected, that is verified by findLines and get_wasInlined APIs.
- Also I am not able to hit breakpoints places in the inline functions on Visual Studio. Does this means there is no inline expansion info present in the PDB file.
Issue:
I am trying the extract inlined function information i.e. which functions got inlined, where actually inline function expansion happened, etc.). To extract that, I am trying to use the following DIA APIs:
IDiaSymbol::findInlineFramesByAddrIDiaSymbol::findInlineFramesByRVA
IDiaSymbol::findInlineFramesByVA
IDiaSymbol::findInlineeLines
IDiaSymbol::findInlineeLinesByAddr
IDiaSymbol::findInlineeLinesByRVA
IDiaSymbol::findInlineeLinesByVA
To me, it appears that, none of the above functions are able to provide any details about the inlined functions. Lack of a tutorial/samples/examples for above functions blocking me a little.
Can someone help me in understanding:
- How can I extract the inline expansion details?
- Why the above APIs are not working as expected? How to call these APIs correctly to get expected results?
- How to ensure inline expansion info gets added into PDB file.
Let me know if I need to provide more regarding this.