Je suis ouvert l'ouverture d'un processus (avec C++/Windows) en utilisantStack marche un processus débogué
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
où
DWORD creationFlags = DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS;
et je suis en train de stackwalk avec
bool ok = StackWalk64(IMAGE_FILE_MACHINE_I386,m_ps.Handle ,m_th.Handle,
&m_stackframe, &m_threadContext,
0, NULL, NULL, 0);
mais pilewalk me donne juste l'adresse supérieure et la suivante est 0, alors que sais ther e sont plus d'adresses dans la pile.
Est-ce que quelqu'un sait quel est le problème?
merci :)
Je l'avais déjà bien fonctionné lorsque j'ai créé le processus uniquement avec le drapeau "CREATE_NEW_CONSOLE", mais maintenant je dois empiler un processus débogué. les drapeaux dans "CreateProcess" sont les seules différences que j'ai faites ... – Idov