views:

39

answers:

1

Which tool can I use to see the call stack for a running process? msdn link , but do I need to have the executable in debug mode? What are the other tools/ways by which i can see the call-graph / resource access graph for a running process? I have an external library from a developer to construct my own machine vision algos, but the external library is in binary form. When I use the library in my code there are crashes because of the way we access images. I want to see the call-graph or the resource access graph.

A: 

Do I need to have the executable in debug mode?

I'm not sure exactly what you mean by this, but getting the call stack for a process will work for both debug-built and release-built binaries. Usually, the only real difference between debug and release is the amount of optimization and debug information included.

What are the other tools/ways by which i can see the call-graph / resource access graph for a running process?

The easiest way from Visual Studio is to run your program under the debugger (just press F5), however, you can also attach to a running process per the instructions included in your link.

If you enable breaking on first-chance exceptions1, you can navigate to the Call Stack window when the crash occurs. Assuming your code is native, you will need the PDB file (.pdb, program database file) for your code and the 3rd party library in order to see function names on the call stack.

You can also get the call stack of any running process using Process Explorer, but you will still need the PDB files in order to see the symbols.


  1. For native exceptions, see Debug -> Exceptions..., and check "C++ Exceptions" and "Win32 Exceptions".
Chris Schmich