监视日志文件(C++)时崩溃
Crash while monitoring a log file (C++)
我正在读取一个日志文件,该文件正由一些安装程序进程连续写入。然而,在某些情况下,我会遇到随机崩溃,原因如下:
Crash reason: EXCEPTION_ACCESS_VIOLATION_READ
我对此有几个问题-
1:如果您看到以下代码,我将尝试处理在阅读时发生的任何异常。那么,为什么EXCEPTION_ACCESS_VIOLATION_READ没有被捕获并且程序崩溃呢。
2:这看起来像是因为安装程序在我读取文件的同时写入文件。wxTextFile不允许我使用打开文件的模式。那么,如果我使用一些C函数并以READ_ONLY模式打开文件,这种崩溃还会发生吗?
以下是我的代码:
wxTextFile file( wxT("C:\logfile.log") );
WriteLog(wxT("Will start monitoring log file."));
while(true)
{
if(file.Exists())
{
try
{
if(file.Open())
{
wxString str = file.GetLastLine();
WriteLog(wxT("Got::")+str);
file.Close();
}
}
catch(...)
{
WriteLog(wxT("CRASH: something went wrong::MonitorLogFile()"));
}
}
//Exit if needed
Sleep(1500);
}
我相信14天后你的问题就解决了,不是吗?
我有一种感觉(我对wxWidgets知之甚少(,你的编译器正在这里执行地址添加
wxT("Got::"(+str
尝试将其更改为2个实际字符串
wxT((是一个解析为L"的宏调用吗?如果是这样的话,那么你就遇到了问题,你应该修改代码,使用真实的字符串对象(而不是宏文本(+第二个字符串对象来执行字符串连接,此时你使用+作为运算符重载,而不是像我怀疑的那样作为地址的总和
问候
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 内联映射初始化的动态atexit析构函数崩溃
- 执行函数时导致崩溃的变量
- 程序崩溃并显示"std::out_of_range"错误
- CoInitialize()在单独的线程上崩溃而不返回
- 使用调试/崩溃报告将应用程序部署到客户端
- 为什么所有C++编译器都会崩溃或挂起此代码
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- 为什么我的多线程作业队列崩溃
- ExtractIconEx:可以工作,但偶尔会崩溃
- 为什么引用传递会导致此崩溃(C++)
- 试图创建流或fopen时程序崩溃
- 类对象数组的问题会导致崩溃
- 排序时无法执行交换操作.我做的时候它会崩溃.为什么
- 为什么要增加导致崩溃的指针
- 在虚幻引擎中删除NXOpen对象时崩溃
- 为什么它只打印双链接列表的第一个值,而我的程序却崩溃了
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- Visual Studio在尝试读取resource.txt文件时崩溃
- 将方法转换为调用该方法的成员函子对象会导致崩溃