我有一个应用程序已经开始用0xc0000409 - The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application.失败了
我有一个完整的崩溃转储和源代码,但这将导致我在Windows中使用terminate()和abort()函数,并且我看不到任何特定于应用程序的代码在调用堆栈中跨出。
用户已经表示在启动app UI时会出现内存不足的错误(它可以在命令行上运行,也可以启动UI)。
我的问题是,上面的异常是否表明应用程序试图将过多的数据加载到堆栈中,如果是这样的话,是否有任何方法来检测哪个变量,最好是哪一行代码导致堆栈缓冲区溢出?我正在使用WinDbg和Visual分析转储文件。
堆栈在下面。
WARNING: Stack unwind information not available. Following frames may be wrong.
00 0019d2f8 00868f91 MyApp+0x4ccf73
01 0019d308 7490e9a2 MyApp+0x468f91
02 0019d39c 7709d30e KERNELBASE!UnhandledExceptionFilter+0x172
03 0019ffdc 77061b34 ntdll!__RtlUserThreadStart+0x3b7d4
04 0019ffec 00000000 ntdll!_RtlUserThreadStart+0x1b发布于 2022-04-05 16:03:17
https://stackoverflow.com/questions/71745234
复制相似问题