There is something I am not understanding. Why do debuggers sometimes show only part of the call stack? The ones I tried are WinDbg and OllyDbg.
Let me explain what I mean. Consider this example:
I launched an application, and when a dialog box showed up, I attached OllyDbg to the application and paused to look at the call stack. However, I see this:
As you can see, this is the call stack of the main thread of the application. Unfortunately, the presented call stack seems to stop at ntdll
and does not continue to show the functions in the executable. Because this is the main thread, main()
has definitely not returned as otherwise the process would have terminated.
When I try using WinDbg, a similar thing happens for me as shown here.
Why does this happen, and how do I find the full call stack?