0

I'm using Visual Studio 2012 to write in assembly and I'm currently using the PUSH/POP instructions.

I would like to know where does sit the value being pushed to the stack by the PUSH instruction.

I've tried the Memory Tab by locating the ESP address but didn't find anything there.

Can please someone tell if it is possible and how to reach/locate the pushed values in debugging mode?

Thank you,

Guy

1
  • Yes, after you stepped over the PUSH, you'll see the value in the Memory window by putting "ESP" in the address box. Pretty unclear why you can't see it. Commented Nov 13, 2013 at 17:12

1 Answer 1

1

On the topmost toolbar in Visual Studio:

"Debug > Windows > CallStack"

Note that this is only available with the debugger attached to a process.

[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]

MSDN article: Using the Call Stack.

That error message indicates there are no debug symbols available for the project to use. Make sure that you are in debug mode, not release.

Also if you are using "debug > attach to process" make sure the .pdb (symbol files) are available.

Either:

make sure the .PDB files for your DLLs are in the same directory as the process executable that you are attaching the debugger to.

OR

  • open Debug > Windows > Modules
    • Check Symbol Status ("Cannot find or open PDB file" means they aren't loaded)
  • Locate your DLL
  • Right click it and
  • select "Load Symbols From > Symbol Path"
2
  • 1
    This is all what I have there while pushing values into the STACK:" [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] " Commented Nov 13, 2013 at 17:00
  • @SyndicatorBBB I have updated my answer to reflect your comment, please try these additional steps.
    – Amicable
    Commented Nov 13, 2013 at 17:13

Not the answer you're looking for? Browse other questions tagged or ask your own question.