The process opens (with C ++ / Windows) using
if( CreateProcessA( NULL, // No module name (use command line) (LPSTR)path, //argv[1], // Command line NULL, // Process handle not inheritable NULL, // Thread handle not inheritable FALSE, // Set handle inheritance to FALSE creationFlags, // No creation flags NULL, // Use parent environment block NULL, // Use parent starting directory &startInfo, // Pointer to STARTUPINFO structure &processInfo ) // Pointer to PROCESS_INFORMATION structure
Where
DWORD creationFlags = DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS;
and then I try to execute it with
bool ok = StackWalk64(IMAGE_FILE_MACHINE_I386,m_ps.Handle ,m_th.Handle, &m_stackframe, &m_threadContext, 0, NULL, NULL, 0);
but stackwalk just gives me the top address and the next one is 0, and I know there are more addresses in the stack.
Does anyone know what the problem is?
thanks:)
c ++ debugging windows callstack
Idov
source share