मैं एक प्रक्रिया खोलने खोला रहा हूँ चलना मैंढेर एक डिबग प्रक्रिया
साथ यह stackwalk कोशिश कर रहा हूँ (सी ++/विंडोज के साथ)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
जहां
DWORD creationFlags = DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS;
और उसके बाद का उपयोग कर
bool ok = StackWalk64(IMAGE_FILE_MACHINE_I386,m_ps.Handle ,m_th.Handle,
&m_stackframe, &m_threadContext,
0, NULL, NULL, 0);
लेकिन स्टैकवॉक मुझे सिर्फ शीर्ष पता देता है और अगला वाला 0 है, जबकि मैं जानता हूं थर्म ई ढेर में अधिक पते हैं।
किसी को भी पता है समस्या क्या है?
धन्यवाद :)
मैं पहले से ही यह अच्छी तरह से काम कर रहा है जब मैं केवल "CREATE_NEW_CONSOLE" ध्वज के साथ प्रक्रिया बनाई गई थी, लेकिन अब मैं एक डिबग प्रक्रिया stackwalk की जरूरत है। "CreateProcess" में झंडे केवल मेरे द्वारा किए गए अंतर हैं ... – Idov