1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
[WRAPPER] Display's resource_alloc had not be added bridge when directly call XOpenIM but not XOpenDisplay
Hi,
testcase: [Scilab 6.0.1](https://www.scilab.org/download/6.0.1/scilab-6.0.1.bin.linux-x86_64.tar.gz)
Display's resource_alloc `0xfff3a1cb40`, which is a native LoongArch entry, had not be added bridge when directly call XOpenIM but not XOpenDisplay:
```
...
17473|0x3f180e530a: Calling XOpenIM(0xFFD8032960, 0x0, 0x0, ...) => return 0xFFD80566C0
...
=> NOT Calling XOpenDisplay
```
SIGSEGV when Running Interpreter at `0xfff3a1cb40` which is a native LoongArch entry:
```
[BOX64] 17473|Running Interpreter @0xfff3a1cb40, emu=0x3ccf52f0
^--- a native LoongArch entry
[BOX64] Run X86 (0x3ccf52f0), RIP=0xfff3a1cb40, Stack=0xffed0e2188 is32bits=0
^--- a native LoongArch entry
[BOX64] 17473|SIGSEGV @0x3502721c (???(./bin/scilab-bin+0x82721c)) (x64pc=0xfff3a1cb42/"???", rsp=0xffed0e2188, stack=0xffe50e4000:0xffed0e4000 own=0xffe50e4000 fp=0xffed0e2190), for accessing (nil) (code=1/prot=0), db=(nil)((nil):(nil)/(nil):(nil)/???:clean, hash:0/0) handler=0x3f011bb570
...
(gdb) bt
#0 my_box64signalhandler (sig=<optimized out>, info=0xffe4ce06f8, ucntx=0xffe4ce0780) at /home/zhaixiang/repo/box64/src/libtools/signals.c:1908
#1 <signal handler called>
#2 0x000000003502721c in Run (emu=emu@entry=0x3ccf52f0, step=<optimized out>, step@entry=1) at /home/zhaixiang/repo/box64/src/emu/x64run.c:2138
#3 0x0000000034836414 in DynaRun (emu=emu@entry=0x3ccf52f0) at /home/zhaixiang/repo/box64/src/dynarec/dynarec.c:219
#4 0x0000000034836610 in DynaCall (emu=emu@entry=0x3ccf52f0, addr=<optimized out>) at /home/zhaixiang/repo/box64/src/dynarec/dynarec.c:121
#5 0x000000003486c9e8 in RunFunctionFmt (fnc=<optimized out>, fmt=0x355e6e28 "p") at /home/zhaixiang/repo/box64/src/tools/callback.c:234
#6 0x000000fff3a1aaf8 in XCreateWindow () from /lib/loongarch64-linux-gnu/libX11.so.6
#7 0x00000000348b2400 in LFEpLiiuuuiupLp (emu=0x3ccf52f0, fcn=<optimized out>) at /home/zhaixiang/repo/box64/src/wrapped/generated/wrapper.c:6989
#8 0x000000003484a2ac in x64Int3 (emu=0x3ccf52f0, addr=<optimized out>) at /home/zhaixiang/repo/box64/src/emu/x64int3.c:334
#9 0x000000fff374655c in ?? ()
=> (gdb) x/22i 0xfff3a1cb40
^--- a native LoongArch entry
0xfff3a1cb40 <_XAllocID>: addi.d $r3,$r3,-16(0xff0)
0xfff3a1cb44 <_XAllocID+4>: st.d $r1,$r3,8(0x8)
0xfff3a1cb48 <_XAllocID+8>: st.d $r23,$r3,0
0xfff3a1cb4c <_XAllocID+12>: ldptr.d $r12,$r4,2608(0xa30)
...
```
So I just [added bridge for Display's resource_alloc in the XOpenIM](https://github.com/xiangzhai/box64/tree/wrappedlibx11).
Thanks,
Leslie Zhai
|