警告
本文最后更新于 2022-01-04,文中内容可能已过时。
参考:https://wiki.winehq.org/Wine_Developer%27s_Guide/Debugging_Wine
使用 winedbg ida.exe
启动调试器,单步调试,发现调试到下面的位置再尝试单步步进,但是 IDA 会直接启动,这个不知道被调用函数内部的调用:
0x000000017000c968 ntdll+0xc968: calll *0x000000007ffe1000
启动之后可以正常启动
可以说汇编一模一样,没有任何区别,但是同样调试到上述位置处时,尝试步进,可以打开 IDA 的欢迎界面:
但是尝试点击 Go 启动时,winedbg 直接触发了异常:
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
| Unhandled exception: 0x40000015 in 64-bit code (0x000000007b0123ae).
016c:fixme:dbghelp:dump_unwind_info couldn't read memory for UNWIND_INFO at af740ab8
Register dump:
rip:000000007b0123ae rsp:0000000012e2ec10 rbp:000000000310a2f0 eflags:00000202 ( - -- I - - - )
rax:0000000012e2ec50 rbx:00000000033af690 rcx:0000000012e2ec30 rdx:0000000000000001
rsi:0000000012e2ed28 rdi:0000000012e2ec58 r8:0000000000000001 r9:0000000012e2ed20 r10:0000000000000000
r11:0000000000000001 r12:00000000033ac2f0 r13:0000000000000000 r14:0000000000000000 r15:0000000000000000
Stack dump:
0x0000000012e2ec10: 0000000012e2ec30 0000000000000000
0x0000000012e2ec20: 0000000000000000 0000000000000024
0x0000000012e2ec30: 0000000140000015 0000000000000000
0x0000000012e2ec40: 000000007b0123ae 0000000000000001
0x0000000012e2ec50: 00000000033af690 00000003af710280
0x0000000012e2ec60: 0000000000000038 000000000310a328
0x0000000012e2ec70: 000000000310a2f0 00000003af710280
0x0000000012e2ec80: 000000000000001e 0000000000000000
0x0000000012e2ec90: 0000000000000000 00000003af6a94cd
0x0000000012e2eca0: 00000000fffffffe 00000000033af690
0x0000000012e2ecb0: 0000000000000000 000000000310a328
0x0000000012e2ecc0: 000000000310a2f0 00000000033af690
Backtrace:
=>0 0x000000007b0123ae AccessCheckByTypeAndAuditAlarmW+0x113ae() in kernelbase (0x000000000310a2f0)
1 0x00000000118e8181 in libzmq-v142-mt-4_3_4-4e355e3e (+0x18181) (0x000000000310a2f0)
2 0x00000000118e75a2 in libzmq-v142-mt-4_3_4-4e355e3e (+0x175a2) (0x000000000310a2f0)
3 0x0000000011912998 zmq_atomic_counter_inc+0x23138() in libzmq-v142-mt-4_3_4-4e355e3e (0x0000000000000000)
0x000000007b0123ae kernelbase+0x123ae: nop
|
可以看到触发了 0x40000015 异常,但是我对于 windows 异常代码以及问题并没有太多了解。我尝试搜索了一下,并没有很好的解决方案。但是通过调用栈,可以确定异常的发生在于AccessCheckByTypeAndAuditAlarmW 函数内部,这是 windowsapi,貌似用于访问权限检查。但我无法确定在 wine-6.23-1 中进入该函数中的行为和上下文是什么。于是寄辣!
嘻嘻, 不如开摆等更新.