about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2025-01-23 21:07:38 +0800
committerGitHub <noreply@github.com>2025-01-23 14:07:38 +0100
commit356200159aa8a509dbc2ba8335bc9a254c626028 (patch)
treec50f56a8e1068ffda8c48b6b11d8ea25f94fab22 /src
parentf0d8712275d2ca1b27d7022acf48cde647bdacd5 (diff)
downloadbox64-356200159aa8a509dbc2ba8335bc9a254c626028.tar.gz
box64-356200159aa8a509dbc2ba8335bc9a254c626028.zip
[ENV] Fixed zydis initialization regression (#2287)
Diffstat (limited to 'src')
-rw-r--r--src/core.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/core.c b/src/core.c
index 313cac88..dd53d737 100644
--- a/src/core.c
+++ b/src/core.c
@@ -574,14 +574,17 @@ static void addLibPaths(box64context_t* context)
     loadPath(&context->box64_path, ".:bin", BOX64ENV(path));
     if(getenv("PATH"))
         AppendList(&context->box64_path, getenv("PATH"), 1);   // in case some of the path are for x86 world
+}
 
+void setupZydis(box64context_t* context)
+{
 #ifdef HAVE_TRACE
-    if((BOX64ENV(trace_init) && strcmp(BOX64ENV(trace_init), "0")) || (BOX64ENV(trace) && strcmp(BOX64ENV(trace), "0"))) {
+    if ((BOX64ENV(trace_init) && strcmp(BOX64ENV(trace_init), "0")) || (BOX64ENV(trace) && strcmp(BOX64ENV(trace), "0"))) {
         context->x64trace = 1;
     }
-    if(my_context->x64trace) {
+    if (context->x64trace) {
         printf_log(LOG_INFO, "Initializing Zydis lib\n");
-        if(InitX64Trace(my_context)) {
+        if (InitX64Trace(context)) {
             printf_log(LOG_INFO, "Zydis init failed. No x86 trace activated\n");
             context->x64trace = 0;
         }
@@ -1138,6 +1141,7 @@ int initialize(int argc, const char **argv, char** env, x64emu_t** emulator, elf
         wine_prog = NULL;
     }
     openFTrace(0);
+    setupZydis(my_context);
     PrintEnvVariables();
 
     for(int i=1; i<my_context->argc; ++i) {