about summary refs log tree commit diff stats
path: root/src/tools/env.c
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2025-03-03 17:08:50 +0800
committerGitHub <noreply@github.com>2025-03-03 10:08:50 +0100
commit2636e7e8b54dd1aa96139b6e609f8920813d8a6e (patch)
tree39741a0ce85b8d3a12dbdfdff2a780081723d493 /src/tools/env.c
parentb0e726d953948c40fa478bc7ee53ed6565beadd1 (diff)
downloadbox64-2636e7e8b54dd1aa96139b6e609f8920813d8a6e.tar.gz
box64-2636e7e8b54dd1aa96139b6e609f8920813d8a6e.zip
[RCFILE] Added range gdbjit support (#2414)
Diffstat (limited to 'src/tools/env.c')
-rw-r--r--src/tools/env.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/tools/env.c b/src/tools/env.c
index e1840f29..c41d9b42 100644
--- a/src/tools/env.c
+++ b/src/tools/env.c
@@ -127,6 +127,28 @@ static void applyCustomRules()
         }
     }
 
+    if (box64env.is_dynarec_gdbjit_str_overridden) {
+        if (strlen(box64env.dynarec_gdbjit_str) == 1) {
+            if (box64env.dynarec_gdbjit_str[0] >= '0' && box64env.dynarec_gdbjit_str[0] <= '2')
+                box64env.dynarec_gdbjit = box64env.dynarec_gdbjit_str[0] - '0';
+
+            box64env.dynarec_gdbjit_start = 0x0;
+            box64env.dynarec_gdbjit_end = 0x0;
+        } else if (strchr(box64env.dynarec_gdbjit_str, '-')) {
+            if (sscanf(box64env.dynarec_gdbjit_str, "%ld-%ld", &box64env.dynarec_gdbjit_start, &box64env.dynarec_gdbjit_end) != 2) {
+                if (sscanf(box64env.dynarec_gdbjit_str, "0x%lX-0x%lX", &box64env.dynarec_gdbjit_start, &box64env.dynarec_gdbjit_end) != 2) {
+                    if (sscanf(box64env.dynarec_gdbjit_str, "0x%lx-0x%lx", &box64env.dynarec_gdbjit_start, &box64env.dynarec_gdbjit_end) != 2)
+                        sscanf(box64env.dynarec_gdbjit_str, "%lx-%lx", &box64env.dynarec_gdbjit_start, &box64env.dynarec_gdbjit_end);
+                }
+            }
+            if (box64env.dynarec_gdbjit_end > box64env.dynarec_gdbjit_start) {
+                box64env.dynarec_gdbjit = 2;
+            } else {
+                box64env.dynarec_gdbjit = 0;
+            }
+        }
+    }
+
     if (box64env.is_nodynarec_overridden) {
         if(box64env.nodynarec) {
             if (strchr(box64env.nodynarec,'-')) {