ich geöffnet habe einen Prozess öffnen (mit C++/Windows-)Gehen Stapel einen ausgetestet Prozesses
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's environment block
NULL, // Use parent's starting directory
&startInfo, // Pointer to STARTUPINFO structure
&processInfo) // Pointer to PROCESS_INFORMATION structure
wo
DWORD creationFlags = DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS;
und anschließend mit Ich versuche, es zu stackwalk
bool ok = StackWalk64(IMAGE_FILE_MACHINE_I386,m_ps.Handle ,m_th.Handle,
&m_stackframe, &m_threadContext,
0, NULL, NULL, 0);
aber Stackwalk gibt mir nur die obere Adresse und der nächste ist 0, während ich kenne ther e sind mehr Adressen im Stapel.
Weiß jemand, was das Problem ist?
danke :)
Ich hatte bereits das funktioniert gut, wenn ich den Prozess nur mit der "CREATE_NEW_CONSOLE" -Flag erstellt, aber jetzt muss ich Stackwalk einen Debugging-Prozess. Die Flags in "CreateProcess" sind die einzigen Unterschiede, die ich gemacht habe ... – Idov