Comments (23)
Any ideas on how to debug this? It would be great if Electron apps would work.
from box64.
Try with BOX64_ROLLING_LOG=1
to see last call at the segfault, maybe it will help
from box64.
I've tried that, doesn't looks useful.
BOX64: ignoring prctl(PR_SET_SECCOMP, ...)
Last calls
1571|0x104ad3bfb: Calling __pthread_mutex_unlock (/lib/riscv64-linux-gnu/libc.so.6)(0x36A0D748, 0xB, 0xFFFFFFF7, ...) => return 0x0
1571|0x104ad3d1b: Calling pthread_mutex_lock (/lib/riscv64-linux-gnu/libc.so.6)(0x36A0D8D8, 0x3A, 0xFFFFFFF7, ...) => return 0x0
1571|0x104ad3d3e: Calling __pthread_mutex_unlock (/lib/riscv64-linux-gnu/libc.so.6)(0x36A0D8D8, 0x3A, 0xFFFFFFF7, ...) => return 0x0
1571|0x104ad3d81: Calling pthread_mutex_lock (/lib/riscv64-linux-gnu/libc.so.6)(0x36A0D928, 0xC44, 0xFFFFFFF7, ...) => return 0x0
1571|0x104ad3da4: Calling __pthread_mutex_unlock (/lib/riscv64-linux-gnu/libc.so.6)(0x36A0D928, 0xC44, 0xFFFFFFF7, ...) => return 0x0
1571|0x104ad3eeb: Calling pthread_mutex_lock (/lib/riscv64-linux-gnu/libc.so.6)(0x36A0D9C8, 0x50E, 0xFFFFFFF7, ...) => return 0x0
1571|0x104ad3f10: Calling __pthread_mutex_unlock (/lib/riscv64-linux-gnu/libc.so.6)(0x36A0D9C8, 0x50E, 0xFFFFFFF7, ...) => return 0x0
1571|0x104ad3f57: Calling pthread_mutex_lock (/lib/riscv64-linux-gnu/libc.so.6)(0x36A0DA18, 0x100, 0xFFFFFFF7, ...) => return 0x0
1571|0x104ad3f7c: Calling __pthread_mutex_unlock (/lib/riscv64-linux-gnu/libc.so.6)(0x36A0DA18, 0x100, 0xFFFFFFF7, ...) => return 0x0
1571|0x103790ced: Calling clock_gettime (/lib/riscv64-linux-gnu/libc.so.6)(0x1, 0x10B37CC60, 0xFFFFFFF7, ...) => return 0x0
1571|0x107c0e616: Calling clock_gettime (/lib/riscv64-linux-gnu/libc.so.6)(0x1, 0x10B37CC80, 0x44C6FF921E, ...) => return 0x0
1571|0x107c0e616: Calling clock_gettime (/lib/riscv64-linux-gnu/libc.so.6)(0x1, 0x10B37CD40, 0x60CBA, ...) => return 0x0
1571|0x104ac6f69: Calling __getpid (/lib/riscv64-linux-gnu/libc.so.6)(0x38A69530, 0x1, 0x0, ...) => return 0x623
1571|0x103790ced: Calling clock_gettime (/lib/riscv64-linux-gnu/libc.so.6)(0x1, 0x10B37C9F0, 0x0, ...) => return 0x0
1571|0x107c127d6: Calling my___vsnprintf_chk (code)(0x10B37C910, 0x100, 0x1, ...) => return
1571|0x104ad3bd8: Calling pthread_mutex_lock (/lib/riscv64-linux-gnu/libc.so.6)(0x36A0D748, 0xB, 0xFFFFFFF7, ...) => return 0x0
1571|SIGSEGV @0x3ff103f072 (strlen (/lib/riscv64-linux-gnu/libc.so.6)) (x64pc=0x2f0b53/???:"???", rsp=0x10b37c818), for accessing (nil) (code=1)
RAX:0x000000010b37ca40 RCX:0xffffffffffffffff RDX:0x0000000000000001 RBX:0x0000000000000100
RSP:0x000000010b37c818 RBP:0x000000010b37c830 RSI:0x0000000000000100 RDI:0x000000010b37c910
R8:0x00000001029569a3 R9:0x000000010b37c8f0 R10:0x0000000000000017 R11:0x5555555555555555
R12:0x00000001026e5303 R13:0x0000000000000000 R14:0x000000010b37c910 R15:0x000000010b37c910
Segmentation fault
from box64.
Well, the issue is in my___vsnprintf_chk(...)
Must be some wrong wrapping or something like that.
from box64.
Hmm, I remember this function got some fixes just a few days ago, I thought it was fine..
from box64.
Yes, it indeed segfaulted in my___vsnprintf_chk
, might be something off in myStackAlignValist
, I'll debug it later, thanks!
from box64.
When calling my___vsnprintf_chk
, the third vararg on the stack(overflow_arg_area[2]
) is interpreted as a char *
but has some garbage value 0x3ff0000000000000
. Looks like it's not a problem with my___vsnprintf_chk
, the problem comes before it.
from box64.
Thta looks like a float value. What is the fmt
string?
from box64.
It's
[%d:%p] %8.0f ms: %s%s%s %.1f (%.1f) -> %.1f (%.1f) MB, %.1f / %.1f ms %s (average mu = %.3f, current mu = %.3f) %s; %s
gp_offset
is 16, fp_offset
is 48.
from box64.
Floating point values (9 of them out of 16 slots) are not touching the stack, there shouldn't be a float value on the stack.
from box64.
Unless it is! I changed X64_VA_MAX_XMM
from ((6*8)+(8*16))
to ((6*8)+(8*8))
, and it works!!!! That's so unobvious!
from box64.
I'm so happy that VS Code works! Yay!!!
from box64.
It's amazing you can tell from the hex that this is a float...
from box64.
So we should define X64_VA_MAX_XMM
as ((6*8)+(8*16))
when CONVERT_VALIST
is present, otherwise ((6*8)+(8*8))
, right?
from box64.
Ah yes, size of an xmm reg is 16bytes! not 8
(yeah, I see float and double in hex dump... I spend too much time looking at hex dump !!!)
from box64.
VS Code starts fine, but there is only a blank window, which seems an OpenGL issue (not sure). Weixin won't start for some reason, but it's gone much further. It's some progress nevertheless.
from box64.
Yes, it might be an opengl issue. Try withou/without gl4es (Electron should be compatible with GLES2, but I don't remember if I wrapped libGLESv2 :S))
from box64.
With or w/o gl4es acts the same, with some GL errors printed in both ways.
from box64.
I accidentally turned off Dynarec when compiling box64 yesterday, VS Code is still not working with RV64 Dynarec.
from box64.
A lot of diffs on MOV r/m64, imm32
is reported by cosim, which is strange.
Warning, difference between Interpreter and Dynarec in 0x10552f94b (48 c7 47 08 ff ff ff 7f)
=======================================
DIFF: Dynarec | Interpreter
----------------------
MEM: @0x3fb430e8a0 : ff ff ff 7f 00 00 00 00 | ff ff ff 7f ff ff ff ff
from box64.
Looks like a sign extension issue here. But on the interpreter side?
Also, beware, not sure the address given as an error is the right one. It might be off by 1 opcode....
You need to check the generated code around the address to really understand what is going on.
from box64.
It might be off by 1 opcode.
Oh? I didn't aware of that.
But on the interpreter side?
The interpreter is fine, so that got me confused. Anyway I'm trying to look at opcodes near it to see if something is off.
from box64.
I'm struggling with debugging this, @ptitSeb can you try to fix it when you have the time?
from box64.
Related Issues (20)
- winegui not staring due to lacking wrapper
- Barotrauma (Native) crashed back to console after shortly showing splash loading screen HOT 4
- Unity3D app running in docker container but no script gets executed HOT 2
- Garrys Mod Linux AMD64 - Symbol Not Found
- Warning: Unsupported libc Syscall 0x1C1 (449) HOT 1
- Box64 baixar HOT 1
- Error: Symbol execle not found, cannot apply R_X86_64_JUMP_SLOT HOT 5
- Please need update for more working cracks game
- Steam New Big Picture UI (gamepadui) Really bad lag/fps on menus HOT 6
- Illegal Opcode 0x20ffe8: FF FF 41 00 00 00 HOT 21
- the some 32bit game error HOT 10
- Tmodloader doesnโt launch error HOT 1
- Unimplemented 32bits Opcode (00 83 C4 0C) 66 60 9C 58 8B C8 35 00 00 04 00 50 9D 9C 58 HOT 4
- Wine WOW64 : GPU Caps Viewer crashed HOT 10
- [32bit] game cannot launch
- Unimplemented 32bits Opcode (C7 B6 6C 00) 64 67 8B 16 2C 00 8B 04 82 C3 90 53 81 C4 F8 HOT 1
- [32BITS] [RV64] Floating-point calculation is problematic
- [32BITS] [RV64] npp32 installer stucked on agreement page
- [32BITS] Windows Steam stuck on the "Updating Steam" phase HOT 9
- Unimplemented OpCode: 151763|0x7f9f07d3da: Unimplemented Opcode (FF) F0 0F C0 03 4C 8D BD 51 01 00 00 84 C0 74 67 HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from box64.