port: EterBase/Debug.cpp log functions verbatim (log.txt, syserr.txt)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-30 12:49:20 +09:00
co-authored by Claude Opus 5.5
parent f9b1044a4a
commit e0cdcee2e6
5 changed files with 434 additions and 95 deletions
+162 -66
View File
@@ -1,69 +1,165 @@
{
"reference": "EterBase/Debug.cpp",
"reference_sha256": "af7a6cba9e6d83511a40f596629f85f1b770b510fc0db1d9cbefcec88ecb15ec",
"priority": "P4",
"contracts": [],
"functions": {
"SetLogLevel": {
"status": "TODO"
},
"Log": {
"status": "TODO"
},
"Logn": {
"status": "TODO"
},
"Logf": {
"status": "TODO"
},
"Lognf": {
"status": "TODO"
},
"Trace": {
"status": "TODO"
},
"Tracen": {
"status": "TODO"
},
"Tracenf": {
"status": "TODO"
},
"Tracef": {
"status": "TODO"
},
"TraceError": {
"status": "TODO"
},
"TraceErrorWithoutEnter": {
"status": "TODO"
},
"LogBoxf": {
"impl": [
"src/platform/EterBase/Debug.cpp:LogBoxf"
],
"status": "ADAPTED",
"note": "verbatim apart from two PORT fixes the 40250 build did not need: va_end (40250 leaks the va_list) and terminating szBuf, which _vsnprintf does not do on truncation.",
"test": "project/python_host_check.gd — system.py's ImportError reaches GDScript through it"
},
"LogBox": {
"impl": [
"src/platform/EterBase/Debug.cpp:LogBox"
],
"status": "ADAPTED",
"note": "40250 pops a MessageBox on g_PopupHwnd and Tracen()s the text. No window here: the text goes to stderr and is kept in LastLogBoxMessage() (src/platform/EterBase/LogBox.h), because ScriptLib/PythonLauncher.cpp Traceback() reports every failed script line through LogBoxf after PyErr_Fetch has already cleared the exception — this is the only place a traceback survives.",
"test": "project/python_host_check.gd — system.py's ImportError reaches GDScript through it"
},
"LogFile": {
"status": "TODO"
},
"LogFilef": {
"status": "TODO"
},
"OpenLogFile": {
"status": "TODO"
},
"OpenConsoleWindow": {
"status": "TODO"
"reference": "EterBase/Debug.cpp",
"reference_sha256": "af7a6cba9e6d83511a40f596629f85f1b770b510fc0db1d9cbefcec88ecb15ec",
"priority": "P4",
"contracts": [],
"functions": {
"SetLogLevel": {
"status": "PORTED",
"impl": [
"src/platform/EterBase/Debug.cpp:SetLogLevel"
],
"test": [
"tests/port/port_debug_log_test.cpp"
],
"note": "Verbatim 40250 non-_DEBUG build (the _DEBUG OutputDebugString/stdout lines are compiled out there too)."
},
"Log": {
"status": "PORTED",
"impl": [
"src/platform/EterBase/Debug.cpp:Log"
],
"test": [
"tests/port/port_debug_log_test.cpp"
],
"note": "Verbatim 40250 non-_DEBUG build (the _DEBUG OutputDebugString/stdout lines are compiled out there too)."
},
"Logn": {
"status": "PORTED",
"impl": [
"src/platform/EterBase/Debug.cpp:Logn"
],
"test": [
"tests/port/port_debug_log_test.cpp"
],
"note": "Verbatim 40250 non-_DEBUG build (the _DEBUG OutputDebugString/stdout lines are compiled out there too)."
},
"Logf": {
"status": "PORTED",
"impl": [
"src/platform/EterBase/Debug.cpp:Logf"
],
"test": [
"tests/port/port_debug_log_test.cpp"
],
"note": "Verbatim 40250 non-_DEBUG build (the _DEBUG OutputDebugString/stdout lines are compiled out there too). PORT: terminates szBuf after a truncating _vsnprintf (and va_end in LogFilef)."
},
"Lognf": {
"status": "PORTED",
"impl": [
"src/platform/EterBase/Debug.cpp:Lognf"
],
"test": [
"tests/port/port_debug_log_test.cpp"
],
"note": "Verbatim 40250 non-_DEBUG build (the _DEBUG OutputDebugString/stdout lines are compiled out there too)."
},
"Trace": {
"status": "PORTED",
"impl": [
"src/platform/EterBase/Debug.cpp:Trace"
],
"test": [
"tests/port/port_debug_log_test.cpp"
],
"note": "Verbatim 40250 non-_DEBUG build (the _DEBUG OutputDebugString/stdout lines are compiled out there too)."
},
"Tracen": {
"status": "PORTED",
"impl": [
"src/platform/EterBase/Debug.cpp:Tracen"
],
"test": [
"tests/port/port_debug_log_test.cpp"
],
"note": "Verbatim 40250 non-_DEBUG build (the _DEBUG OutputDebugString/stdout lines are compiled out there too)."
},
"Tracenf": {
"status": "PORTED",
"impl": [
"src/platform/EterBase/Debug.cpp:Tracenf"
],
"test": [
"tests/port/port_debug_log_test.cpp"
],
"note": "Verbatim 40250 non-_DEBUG build (the _DEBUG OutputDebugString/stdout lines are compiled out there too)."
},
"Tracef": {
"status": "PORTED",
"impl": [
"src/platform/EterBase/Debug.cpp:Tracef"
],
"test": [
"tests/port/port_debug_log_test.cpp"
],
"note": "Verbatim 40250 non-_DEBUG build (the _DEBUG OutputDebugString/stdout lines are compiled out there too). PORT: terminates szBuf after a truncating _vsnprintf (and va_end in LogFilef)."
},
"TraceError": {
"status": "PORTED",
"impl": [
"src/platform/EterBase/Debug.cpp:TraceError"
],
"test": [
"tests/port/port_debug_log_test.cpp"
],
"note": "Verbatim 40250 (stderr without the SYSERR: prefix, log.txt with it). PORT: a -1 (truncated) _vsnprintf keeps the terminator inside the buffer; the TraceErrorObserver hook forwards the line (Android logcat, tests)."
},
"TraceErrorWithoutEnter": {
"status": "PORTED",
"impl": [
"src/platform/EterBase/Debug.cpp:TraceErrorWithoutEnter"
],
"note": "Verbatim, including printing from szBuf + 8; no caller in 40250 (LC_ALL=C grep -a)."
},
"LogBoxf": {
"impl": [
"src/platform/EterBase/Debug.cpp:LogBoxf"
],
"status": "ADAPTED",
"note": "verbatim apart from two PORT fixes the 40250 build did not need: va_end (40250 leaks the va_list) and terminating szBuf, which _vsnprintf does not do on truncation.",
"test": "project/python_host_check.gd — system.py's ImportError reaches GDScript through it"
},
"LogBox": {
"impl": [
"src/platform/EterBase/Debug.cpp:LogBox"
],
"status": "ADAPTED",
"note": "40250 pops a MessageBox on g_PopupHwnd and Tracen()s the text. No window here: the text goes to stderr and is kept in LastLogBoxMessage() (src/platform/EterBase/LogBox.h), because ScriptLib/PythonLauncher.cpp Traceback() reports every failed script line through LogBoxf after PyErr_Fetch has already cleared the exception — this is the only place a traceback survives.",
"test": "project/python_host_check.gd — system.py's ImportError reaches GDScript through it"
},
"LogFile": {
"status": "PORTED",
"impl": [
"src/platform/EterBase/Debug.cpp:LogFile"
],
"test": [
"tests/port/port_debug_log_test.cpp"
],
"note": "Verbatim 40250 non-_DEBUG build (the _DEBUG OutputDebugString/stdout lines are compiled out there too)."
},
"LogFilef": {
"status": "PORTED",
"impl": [
"src/platform/EterBase/Debug.cpp:LogFilef"
],
"test": [
"tests/port/port_debug_log_test.cpp"
],
"note": "Verbatim 40250 non-_DEBUG build (the _DEBUG OutputDebugString/stdout lines are compiled out there too). PORT: terminates szBuf after a truncating _vsnprintf (and va_end in LogFilef)."
},
"OpenLogFile": {
"status": "PORTED",
"impl": [
"src/platform/EterBase/Debug.cpp:OpenLogFile"
],
"test": [
"tests/port/port_debug_log_test.cpp"
],
"note": "Verbatim (freopen syserr.txt over stderr; log.txt when true). 40250 Main calls OpenLogFile(false) in release; the SDL host does not call it yet (UserInterface.cpp Main is still TODO), so stderr stays on the terminal/logcat."
},
"OpenConsoleWindow": {
"status": "N_A",
"note": "AllocConsole + CONOUT$/CONIN$ in the _DEBUG WinMain only; the shipped release build never calls it."
}
}
}
}