【发布时间】:2016-08-09 14:54:31
【问题描述】:
我遇到了一个编译好的项目,但在启动时甚至在到达 InitInstance() 之前就崩溃了。 这发生在我将字符串添加到结构之后:
typedef struct
{
long nChannelIndex;
TCHAR szChannelName[32];
DWORD dwStartTime; // time_t
DWORD dwPlaytimeMs; // msecs
TCHAR szStepName[32];
TCHAR szFilename[MAX_PATH];
long nLenMs;
TCHAR szStepDescr[64];
DWORD dwSessionID;
TCHAR szLocationName[32];
long bInsertion;
BOOL nOrigin; // 0= local, 1= cuemaster,
TCHAR szList[32];
TCHAR szFSPath[MAX_PATH]; << THIS HERE IS THE PROBLEM
}REPORTDATA, *LPREPORTDATA;
当我添加结构的最后一个成员时,问题就开始了。如果我将数组大小减小到较小的数字(比如 12),则应用程序可以正常工作。
我在 chkstk.asm 中遇到了崩溃 - 围绕此代码:
; Find next lower page and probe
cs20:
sub eax, _PAGESIZE_ ; decrease by PAGESIZE
test dword ptr [eax],eax ; probe page.
jmp short cs10
我正在 Windows 7 Ultimate 64 位上编译一个 32 位 c++ 应用程序。微软 2010 年。
我不是要求调试我的代码。只需包含代码以显示引发崩溃的原因以及发生的位置。
有什么想法吗? 感谢您的帮助!
【问题讨论】:
-
你有这些结构的大数组作为局部变量吗?
-
无法从发布的代码中诊断。请张贴SSCCE。至少非常,使用/访问这个怪物发布代码。
-
不可能发布 SSCCE,因为这个应用程序是一个怪物——正如你所说。它是一个多线程数字视频服务器,能够处理多达 128 个频道的广告插入。而且,正如我之前所说,无法访问这些数据,应用程序一启动就会崩溃。 @MarkRansom 可能是对的。
标签: c++ windows visual-studio-2010