Jump to content

Extended Error Log


Recommended Posts

  • Honorable Member

This is the hidden content, please

This is the hidden content, please

⚠ YOU NEED AT LEAST C++17 ⚠

  I want to share some little changes about client crash logs, these changes will create a specific folder for all system error logs and a specific folder when the application crashes, which will dump the normal "ErrorLog.txt" named now as "error_log.txt" as well as the crashed "syserr" named now with timestamps and a log file of DxDiag. These changes can also be extended with CrashRpt if you want to send these logs to your server.

As for anyone who is interested in using the CrashRpt, check it here,

This is the hidden content, please

 

  • Metin2 Dev 118
  • Not Good 1
  • Scream 1
  • Good 19
  • Love 3
  • Love 26
Link to comment
Share on other sites

  • Honorable Member

Updated repository. 

The error log is now more useful for analysis, the stack trace is now visible as well as the symbol name, module name, file name and lines (these outputs can be hidden via option). I'm sure it would be a good idea to encrypt these files however but regardless, I hope it will help some people with better crash logging. By the way, here is an example of an error log.

Crash Simulation

PyObject* appExit(PyObject* poSelf, PyObject* poArgs)
{
	// TEST_CRASH
	assert("bug");
	*((char*)NULL) = 0;
	// END_TEST_CRASH

	CPythonApplication::Instance().Exit();
	return Py_BuildNone();
}

Error Log (syserr/crash/error_log.txt)

Module Name: ...\Metin2Distribute.exe
Time Stamp: 1666049966 - Mon Oct 17 23:39:26 2022

Exception Type: 0xc0000005

eax: 0x0ccd1030	ebx: 0x00000000
ecx: 0x00992610	edx: 0x1e2238e8
esi: 0x0f2c5800	edi: 0x004a9a80
ebp: 0x0019ed84	esp: 0x0019ed6c

004a9a80 Metin2Distribute!appExit @ 484
1e0a8960 python27!PyCFunction_Call
...

 

Edited by Owsap
  • Metin2 Dev 8
  • Good 2
  • Love 3
Link to comment
Share on other sites

  • 8 months later...
  • Premium

For MartySama source:

Change:
TCHAR* szModule = ""; 
To:
const TCHAR* szModule = "";

Change:
CreateProcess("C:\\Windows\\System32\\dxdiag.exe", "/dontskip /whql:off /t dxdiag_log.txt", NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, crash_path.c_str(), &si, &pi)
To:
CreateProcessA("C:\\Windows\\System32\\dxdiag.exe", const_cast<LPSTR>("/dontskip /whql:off /t dxdiag_log.txt"), NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, crash_path.c_str(), &si, &pi)

Also keep in mind the minidump

#if !defined(_EXTENDED_ERROR_LOG_)
#define ENABLE_CRASH_MINIDUMP
#endif

.png

Edited by DemOnJR

plague.png.1f5de75b42146262dcd655a5a8078

Link to comment
Share on other sites



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.