DEADSOFTWARE

Fix error file not open on win32; Added stacktrace logging
[d2df-editor.git] / src / engine / e_log.pas
index 2cabc36c176ec27ed5618a1d5d24fe0dab658273..6fdd767af6d017c93fc6909b5dba7c0d141fee79 100644 (file)
@@ -14,6 +14,7 @@ type
 procedure e_InitLog(fFileName: String; fWriteMode: TWriteMode);
 procedure e_WriteLog(TextLine: String; RecordCategory: TRecordCategory;
                      WriteTime: Boolean = True);
+procedure e_WriteStackTrace (const msg: AnsiString);
 function DecodeIPV4(ip: LongWord): string;
 
 implementation
@@ -59,6 +60,24 @@ begin
   Close(LogFile);
 end;
 
+{$I-}
+procedure e_WriteStackTrace (const msg: AnsiString);
+  var LogFile: TextFile;
+begin
+  e_WriteLog(msg, TRecordCategory.MSG_FATALERROR);
+
+  Assign(LogFile, FileName);
+  if FileExists(FileName) then
+    Append(LogFile)
+  else
+    Rewrite(LogFile);
+
+  writeln(LogFile, '=====================');
+  DumpExceptionBackTrace(LogFile);
+
+  Close(LogFile);
+end;
+
 procedure e_InitLog(fFileName: String; fWriteMode: TWriteMode);
 begin
  FileName := fFileName;