我正在尝试打印我程序的调用堆栈,以防代码中出现断言。我正在使用以下代码: Win32 - Backtrace from C code (除了我的堆栈大小是60,CaptureStackBackTrace的第一个参数是2)。
仅在少数情况下输出如下:
0: MyFunction - 0x009DF4D0 1: main - 0x00A533E0 2: __tmainCRTStartup - 0x00A56AF0 3: mainCRTStart - 0x00A56AD0 4: BaseThreadInitThunk - 0x76603378 5: RtlInitializeExceptionChain - 0x77DC989F
但在大多数情况下,printStack的输出看起来像这样:
0: BaseThreadInitThunk - 0x74CB3358 1: BaseThreadInitThunk - 0x74CB3358 2: BaseThreadInitThunk - 0x74CB3358 3: BaseThreadInitThunk - 0x74CB3358 4: BaseThreadInitThunk - 0x74CB3358 5: BaseThreadInitThunk - 0x74CB3358 6: BaseThreadInitThunk - 0x74CB3358 7: BaseThreadInitThunk - 0x74CB3358 8: BaseThreadInitThunk - 0x74CB3358 9: BaseThreadInitThunk - 0x74CB3358 10: BaseThreadInitThunk - 0x74CB3358 11: BaseThreadInitThunk - 0x74CB3358 12: BaseThreadInitThunk - 0x74CB3358 13: BaseThreadInitThunk - 0x74CB3358 14: RtlInitializeExceptionChain - 0x773D989F
当我从不属于我自己的电脑运行程序时,我总是得到后一种情况。 当我从我的电脑运行程序时,在某些情况下,我得到了前一种情况, 在后一种情况下。
任何帮助?