What's the meaning of a memory address in the call stack window in Visual Studio?

1 day ago 1
ARTICLE AD BOX

I'm debugging my application, called floor.exe. My application is throwing an exception and I'm trying to understand what's happening.

I've opened the call stack window, and I can see that window contains several types of information:

floor.exe!<function_name> Line <Line number>

Module.dll!<function_name> Line <Line number>

<Memory address>(...)

Module.dll!<Memory address>(...)

Here is a screenshot:

Call stack contents

The first lines (combase.dll!CoCreate...) are of the form (2).

The next lines (02c06...()) are of the form (3).

The active line (floor.exe!CFloorApp::InitInstance() ...) is of the form (1).

The line under the active one (mfc140ud.dll!681e2fe1()) is of the form (4).

Whether or not a memory address is understood or not, depends on the debugging symbols: if they are found, then the memory address is translated into a function/method name, else it just stays a memory address.

This gets explained in the "Modules" window. Here is a screenshot:

Module window

The symbols of the application floor.exe are loaded, hence (1).

The symbols of combase.dll are loaded, hence (2).

The symbols of the application floor.exe are loaded, so why (3)?

The symbols of mfc140ud.dll are not loaded, hence (4).

Can anybody explain to me why case (3) exists? What is the meaning? Which symbols do I need to load in order to see what this means?

Read Entire Article