From 2939ac33ab019531fcb74d3f82f9d8fd9e3ce232 Mon Sep 17 00:00:00 2001 From: Robert Konrad Date: Tue, 24 Sep 2024 21:23:56 +0200 Subject: [PATCH] Capture OutputDebugString Fixes #51 --- kmake/src/main.ts | 23 +++++++---- lib/kmake/main.js | 23 +++++++---- lib/kmake/main.js.map | 2 +- lib/os.js | 6 +++ src/node_os.cc | 95 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 130 insertions(+), 19 deletions(-) diff --git a/kmake/src/main.ts b/kmake/src/main.ts index e4599bb8b2..25f675f656 100644 --- a/kmake/src/main.ts +++ b/kmake/src/main.ts @@ -785,15 +785,20 @@ function compileProject(make: child_process.ChildProcess, project: Project, solu }); } else if ((options.customTarget && (options.customTarget.baseTarget === Platform.Linux || options.customTarget.baseTarget === Platform.Windows)) || options.target === Platform.Linux || options.target === Platform.Windows) { - const spawned = child_process.spawn(path.resolve(options.from.toString(), project.getDebugDir(), executableName), [], {stdio: 'inherit', cwd: path.resolve(options.from.toString(), project.getDebugDir())}); - spawned.on('close', (code: number) => { - if (code === 0) { - resolve(); - } - else { - reject(new RunError(code)); - } - }); + if (process.platform === 'win32') { + require('os').runProcess(path.resolve(options.from.toString(), project.getDebugDir(), executableName), path.resolve(options.from.toString(), project.getDebugDir())); + } + else { + const spawned = child_process.spawn(path.resolve(options.from.toString(), project.getDebugDir(), executableName), [], {stdio: 'inherit', cwd: path.resolve(options.from.toString(), project.getDebugDir())}); + spawned.on('close', (code: number) => { + if (code === 0) { + resolve(); + } + else { + reject(new RunError(code)); + } + }); + } } else { log.info('--run not yet implemented for this platform'); diff --git a/lib/kmake/main.js b/lib/kmake/main.js index 0c5eca6363..0d87ddf373 100644 --- a/lib/kmake/main.js +++ b/lib/kmake/main.js @@ -712,15 +712,20 @@ function compileProject(make, project, solutionName, options, dothemath) { }); } else if ((options.customTarget && (options.customTarget.baseTarget === Platform_1.Platform.Linux || options.customTarget.baseTarget === Platform_1.Platform.Windows)) || options.target === Platform_1.Platform.Linux || options.target === Platform_1.Platform.Windows) { - const spawned = child_process.spawn(path.resolve(options.from.toString(), project.getDebugDir(), executableName), [], { stdio: 'inherit', cwd: path.resolve(options.from.toString(), project.getDebugDir()) }); - spawned.on('close', (code) => { - if (code === 0) { - resolve(); - } - else { - reject(new RunError(code)); - } - }); + if (process.platform === 'win32') { + require('os').runProcess(path.resolve(options.from.toString(), project.getDebugDir(), executableName), path.resolve(options.from.toString(), project.getDebugDir())); + } + else { + const spawned = child_process.spawn(path.resolve(options.from.toString(), project.getDebugDir(), executableName), [], { stdio: 'inherit', cwd: path.resolve(options.from.toString(), project.getDebugDir()) }); + spawned.on('close', (code) => { + if (code === 0) { + resolve(); + } + else { + reject(new RunError(code)); + } + }); + } } else { log.info('--run not yet implemented for this platform'); diff --git a/lib/kmake/main.js.map b/lib/kmake/main.js.map index 76c69fb8cb..ad8b9b95f1 100644 --- a/lib/kmake/main.js.map +++ b/lib/kmake/main.js.map @@ -1 +1 @@ -{"version":3,"file":"main.js","sourceRoot":"","sources":["../../kmake/src/main.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"main.js","sourceRoot":"","sources":["../../kmake/src/main.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/os.js b/lib/os.js index 248f4124a0..47c910b080 100644 --- a/lib/os.js +++ b/lib/os.js @@ -48,6 +48,7 @@ const { getCPUs, getProperCPUCount, getWindowsSDKs, + _runProcess, getFreeMem, getHomeDirectory: _getHomeDirectory, getHostname: _getHostname, @@ -161,6 +162,10 @@ function windowsSDKs() { return getWindowsSDKs(); } +function runProcess(path, dir) { + _runProcess(path, dir); +} + /** * @returns {string} */ @@ -364,6 +369,7 @@ module.exports = { cpus, properCpuCount, windowsSDKs, + runProcess, endianness, freemem: getFreeMem, getPriority, diff --git a/src/node_os.cc b/src/node_os.cc index a2595703f8..5fbcacf3f0 100644 --- a/src/node_os.cc +++ b/src/node_os.cc @@ -278,6 +278,100 @@ static void GetWindowsSDKs(const FunctionCallbackInfo& args) { } +static PROCESS_INFORMATION processInfo = {}; + +static struct ods_buffer_type +{ + DWORD process_id; + char data[4096 - sizeof(DWORD)]; +}*ods_buffer; + +static HANDLE ods_data_ready; +static HANDLE ods_buffer_ready; + +static DWORD WINAPI ods_proc(LPVOID arg) +{ + DWORD ret = 0; + + HANDLE output = GetStdHandle(STD_OUTPUT_HANDLE); + assert(output != NULL); + + for (;;) + { + SetEvent(ods_buffer_ready); + + DWORD wait = WaitForSingleObject(ods_data_ready, INFINITE); + assert(wait == WAIT_OBJECT_0); + + if (processInfo.dwProcessId != 0 && processInfo.dwProcessId == ods_buffer->process_id) { + + DWORD length = 0; + while (length < sizeof(ods_buffer->data) && ods_buffer->data[length] != 0) + { + length++; + } + + if (length != 0) + { + DWORD written; + WriteFile(output, ods_buffer->data, length, &written, NULL); + } + } + } +} + +void ods_capture() +{ + if (IsDebuggerPresent()) + { + return; + } + + HANDLE file = CreateFileMappingA(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(*ods_buffer), "DBWIN_BUFFER"); + assert(file != INVALID_HANDLE_VALUE); + + ods_buffer = (ods_buffer_type*)MapViewOfFile(file, SECTION_MAP_READ, 0, 0, 0); + assert(ods_buffer != NULL); + + ods_buffer_ready = CreateEventA(NULL, FALSE, FALSE, "DBWIN_BUFFER_READY"); + assert(ods_buffer_ready); + + ods_data_ready = CreateEventA(NULL, FALSE, FALSE, "DBWIN_DATA_READY"); + assert(ods_data_ready); + + HANDLE thread = CreateThread(NULL, 0, ods_proc, NULL, 0, NULL); + assert(thread != NULL); +} + +void execute_sync(const char* command, const char* directory) { + STARTUPINFOA startupInfo; + memset(&startupInfo, 0, sizeof(startupInfo)); + memset(&processInfo, 0, sizeof(processInfo)); + startupInfo.cb = sizeof(startupInfo); + CreateProcessA(NULL, (char*)command, NULL, NULL, FALSE, CREATE_DEFAULT_ERROR_MODE, NULL, directory, &startupInfo, &processInfo); +} + +void RunProcess(const FunctionCallbackInfo& args) +{ + CHECK_EQ(args.Length(), 2); + CHECK(args[0]->IsString()); + CHECK(args[1]->IsString()); + + Environment* env = Environment::GetCurrent(args); + + node::Utf8Value path(env->isolate(), args[0]); + node::Utf8Value dir(env->isolate(), args[1]); + + ods_capture(); + + execute_sync(*path, *dir); + + WaitForSingleObject(processInfo.hProcess, INFINITE); + CloseHandle(processInfo.hProcess); + CloseHandle(processInfo.hThread); +} + + static void GetFreeMemory(const FunctionCallbackInfo& args) { double amount = static_cast(uv_get_free_memory()); args.GetReturnValue().Set(amount); @@ -532,6 +626,7 @@ void Initialize(Local target, env->SetMethod(target, "getCPUs", GetCPUInfo); env->SetMethod(target, "getProperCPUCount", GetProperCPUCount); env->SetMethod(target, "getWindowsSDKs", GetWindowsSDKs); + env->SetMethod(target, "_runProcess", RunProcess); env->SetMethod(target, "getInterfaceAddresses", GetInterfaceAddresses); env->SetMethod(target, "getHomeDirectory", GetHomeDirectory); env->SetMethod(target, "getUserInfo", GetUserInfo);