MiroKaku / ucxxrt

The Universal C++ RunTime library, supporting kernel-mode C++ exception-handler and STL.
MIT License
399 stars 97 forks source link

arm64平台需要支持。 #10

Open zhangshuangjun opened 2 years ago

zhangshuangjun commented 2 years ago

有规划支持arm64平台吗?

MiroKaku commented 2 years ago

短期没有,没时间,没设备。

MiroKaku commented 2 years ago

已经支持 ARM/ARM64,但暂时没有测试环境。

zhangshuangjun commented 2 years ago

可以搞成支持VS2017的么,我有ARM64的环境可以测试,但是没有VS2022的授权,也不允许升级IDE。

MiroKaku commented 2 years ago

VS2022 之前版本的 ARM 汇编编译器功能不完整,不能编译这个项目。

zhangshuangjun commented 2 years ago

VS2022 之前版本的 ARM 汇编编译器功能不完整,不能编译这个项目。

arm64会蓝屏。

6: kd> kv
 # Child-SP          RetAddr               : Args to Child                                                           : Call Site
00 fffff68d`ecb9a870 fffff801`65bf6140     : fffff68d`ecb9dd30 fffff801`65bf6140 00000000`01010001 00000000`0000007e : nt!KeBugCheck2+0x1bc
01 fffff68d`ecb9ae70 fffff801`65a0a558     : fffff68d`ecb9aed0 fffff801`65a0a558 00000000`00000000 fffff801`6585b7b4 : nt!PspSystemThreadStartup$filt$0+0x9c
02 fffff68d`ecb9ae80 fffff801`65bcc1dc     : 00000000`00000000 fffff801`6585b7b4 fffff801`6585b7b4 00000000`003113dc : nt!_C_ExecuteExceptionFilter+0x38
03 fffff68d`ecb9aee0 fffff801`65a08ea4     : fffff68d`ecb9af40 fffff801`65a08ea4 fffff68d`ecb9bae8 fffff68d`ecb9b6b0 : nt!_C_specific_handler+0xcc
04 fffff68d`ecb9af40 fffff801`65a14c48     : fffff68d`ecb9b560 fffff801`65a14c48 fffff68d`ecb9aff0 fffff68d`ecb96000 : nt!RtlpExecuteHandlerForException+0x14
05 fffff68d`ecb9af60 fffff801`65a14250     : 00000000`00000000 00000000`00000000 fffff68d`ecb9afb0 ffffc480`00000000 : nt!RtlDispatchException+0x288
06 fffff68d`ecb9b5c0 fffff801`65a13d88     : 00000000`00000001 00000000`00000000 fffff68d`ecb9bae8 fffff68d`ecb9bc30 : nt!KiDispatchException+0x440
07 fffff68d`ecb9bab0 fffff801`65a96d84     : fffff68d`ecb9bb90 fffff801`65a96d84 fffff68d`ecb9bc30 fffff68d`ecb9d8b0 : nt!KiDispatchExceptionOnExceptionStack+0x40
08 fffff68d`ecb9bae0 fffff801`65a03c00     : 00000000`0000bd00 00000000`80000003 00000000`00000000 fffff801`65a08c50 : nt!KiSynchronousException+0x3b4
09 fffff68d`ecb9bbd0 fffff801`65a0285c     : fffff68d`ecb9c9a0 fffff68d`ecb9d8b0 fffff68d`ecb9cf50 fffff68d`ecb9c5a0 : nt!KzSynchronousException+0x24
0a fffff68d`ecb9bc30 fffff801`65a08c54     : 7072544b`00000001 00000000`00000000 fffff68d`ecb9bd80 00650035`00340038 : nt!KiArm64ExceptionVectors+0x5c (TrapFrame @ fffff68d`ecb9bc30)
0b fffff68d`ecb9bfa0 fffff801`65a08c48     : 80000044`20400007 00000000`00000000 ffff8005`445cc388 fffff801`69df7458 : nt!RcConsolidateFrames+0x14
0c fffff68d`ecb9bfa0 fffff801`6341233c     : 80000044`20400007 00000000`00000000 ffff8005`445cc388 fffff801`69df7458 : nt!RcConsolidateFrames+0x8
0d fffff68d`ecb9d880 fffff801`634146d0     : fffff68d`ecb9d8b0 fffff801`634146d0 ffff8005`00000001 00000002`00000002 : ucxxrt!Test$ThrowInt+0x2c [E:\NetJobs\ucxxrt_new\test\unittest.cpp @ 61] 
0e (Inline Function) --------`--------     : --------`-------- --------`-------- --------`-------- --------`-------- : ucxxrt!std::invoke+0x18 (Inline Function @ fffff801`634146d0) [C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.32.31326\include\type_traits @ 1478] 
0f (Inline Function) --------`--------     : --------`-------- --------`-------- --------`-------- --------`-------- : ucxxrt!std::_Invoker_ret<void,1>::_Call+0x18 (Inline Function @ fffff801`634146d0) [C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.32.31326\include\functional @ 664] 
10 fffff68d`ecb9d8b0 fffff801`634133a8     : fffff68d`ecb9d8c0 fffff801`634133a8 fffff68d`ecb9d900 fffff801`63418d68 : ucxxrt!std::_Func_impl_no_alloc<void (__cdecl*)(void),void>::_Do_call+0x20 [C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.32.31326\include\functional @ 833] 
11 (Inline Function) --------`--------     : --------`-------- --------`-------- --------`-------- --------`-------- : ucxxrt!std::_Func_class<void>::operator()+0x24 (Inline Function @ fffff801`634133a8) [C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.32.31326\include\functional @ 880] 
12 fffff68d`ecb9d8c0 fffff801`63418d68     : fffff68d`ecb9d900 fffff801`63418d68 ffffffff`fffffffe ffff8005`478f1f80 : ucxxrt!DriverMain+0x320 [E:\NetJobs\ucxxrt_new\test\unittest.cpp @ 299] 
13 (Inline Function) --------`--------     : --------`-------- --------`-------- --------`-------- --------`-------- : ucxxrt!invoke_main+0xc (Inline Function @ fffff801`63418d68) [E:\NetJobs\ucxxrt_new\src\crt\vcruntime\sys_common.inl @ 45] 
14 fffff68d`ecb9d900 fffff801`63421028     : fffff68d`ecb9d920 fffff801`63421028 ffff8005`41299000 ffff8005`44942e30 : ucxxrt!__scrt_common_main_seh+0x68 [E:\NetJobs\ucxxrt_new\src\crt\vcruntime\sys_common.inl @ 102] 
15 fffff68d`ecb9d920 fffff801`65e83090     : fffff68d`ecb9d940 fffff801`65e83090 ffff8005`41299000 ffff8005`44942e30 : ucxxrt!GsDriverEntry+0x28 [minkernel\tools\gs_support\kmodefastfail\gs_driverentry.c @ 46] 
16 fffff68d`ecb9d940 fffff801`65e85f18     : fffff68d`ecb9dab0 fffff801`65e85f18 00000000`00000000 ffff8005`44942e30 : nt!PnpCallDriverEntry+0x48
17 fffff68d`ecb9d990 fffff801`65f414a4     : fffff68d`ecb9da18 00000000`00000000 0000007e`ecb9da00 fffff801`00000000 : nt!IopLoadDriver+0x760
18 fffff68d`ecb9db10 fffff801`65a77b3c     : fffff68d`ecb9dcd0 fffff801`65a77b3c ffff8005`00000000 ffffffff`800051fc : nt!IopLoadUnloadDriver+0x74
19 fffff68d`ecb9db70 fffff801`65b113e0     : ffff8005`3c47a0c0 fffff801`66532e80 fffff801`66532e80 00000000`00000000 : nt!ExpWorkerThread+0x1cc
1a fffff68d`ecb9dd30 fffff801`65a07de4     : 00000000`00000000 fffff801`65a07de4 fffff68d`ecb9aef0 fffff68d`ecb9b6b0 : nt!PspSystemThreadStartup+0x50
1b fffff68d`ecb9dd90 00000000`00000000     : ffff8005`3c4cacf0 fffff801`65a77970 fffff801`65b11390 00000000`00000000 : nt!KiStartSystemThread+0x24
windbg> .open -a fffff8016341233c
DBGHELP: ucxxrt is not source indexed
MiroKaku commented 2 years ago

note:

3: kd> k
 # Child-SP          RetAddr               Call Site
00 ffff960c`3b2e66d0 fffff803`123abeb4     nt!KeBugCheck2+0x1dc
01 ffff960c`3b2e6cb0 fffff803`1200e538     nt!PspSystemThreadStartup$filt$0+0x58
02 ffff960c`3b2e6cc0 fffff803`1220b58c     nt!_C_ExecuteExceptionFilter+0x38
03 ffff960c`3b2e6d20 fffff803`1200cf34     nt!_C_specific_handler+0xcc
04 ffff960c`3b2e6d80 fffff803`120ddbb8     nt!RtlpExecuteHandlerForException+0x14
05 ffff960c`3b2e6da0 fffff803`12064b74     nt!RtlDispatchException+0x328
06 ffff960c`3b2e7400 fffff803`12064ee4     nt!KiDispatchException+0x5d4
07 ffff960c`3b2e78f0 fffff803`120a3290     nt!KiDispatchExceptionOnExceptionStack+0xc4
08 ffff960c`3b2e7920 fffff803`12003c00     nt!KiSynchronousException+0xc0
09 ffff960c`3b2e7a10 fffff803`1200285c     nt!KzSynchronousException+0x24
0a ffff960c`3b2e7a70 fffff803`1200cd74     nt!KiArm64ExceptionVectors+0x5c
0b ffff960c`3b2e7de0 fffff803`1200cd68     nt!RcConsolidateFrames+0x14
0c ffff960c`3b2e7de0 fffff80f`778525a0     nt!RcConsolidateFrames+0x8
0d ffff960c`3b2e9780 fffff80f`7785a8e8     ucxxrt!Test$ThrowInt+0x30 [D:\Code\ucxxrt\test\unittest.cpp @ 61] 
0e ffff960c`3b2e97c0 fffff80f`7785a864     ucxxrt!std::invoke<void (__cdecl*&)(void)>+0x28 [C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.33.31629\include\type_traits @ 1548] 
0f ffff960c`3b2e97e0 fffff80f`7785a658     ucxxrt!std::_Invoker_ret<void>::_Call<void (__cdecl*&)(void)>+0x14 [C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.33.31629\include\functional @ 668] 
10 ffff960c`3b2e9800 fffff80f`77853004     ucxxrt!std::_Func_impl_no_alloc<void (__cdecl*)(void),void>::_Do_call+0x18 [C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.33.31629\include\functional @ 831] 
11 ffff960c`3b2e9820 fffff80f`77852ecc     ucxxrt!std::_Func_class<void>::operator()+0x5c [C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.33.31629\include\functional @ 878] 
12 ffff960c`3b2e9840 fffff80f`77864aec     ucxxrt!DriverMain+0x14c [D:\Code\ucxxrt\test\unittest.cpp @ 302] 
13 ffff960c`3b2e9890 fffff80f`77864a38     ucxxrt!invoke_main+0x1c [D:\Code\ucxxrt\src\crt\vcruntime\sys_common.inl @ 45] 
14 ffff960c`3b2e98b0 fffff80f`778649a4     ucxxrt!__scrt_common_main_seh+0x80 [D:\Code\ucxxrt\src\crt\vcruntime\sys_common.inl @ 102] 
15 ffff960c`3b2e98f0 fffff80f`77864b1c     ucxxrt!__scrt_common_main+0x1c [D:\Code\ucxxrt\src\crt\vcruntime\sys_common.inl @ 143] 
16 ffff960c`3b2e9910 fffff80f`7786f028     ucxxrt!DriverEntry+0x1c [D:\Code\ucxxrt\src\crt\vcruntime\sys_main.cpp @ 18] 
17 ffff960c`3b2e9930 fffff803`123e9de0     ucxxrt!GsDriverEntry+0x28 [minkernel\tools\gs_support\kmodefastfail\gs_driverentry.c @ 46] 
18 ffff960c`3b2e9950 fffff803`1258469c     nt!PnpCallDriverEntry+0x50
19 ffff960c`3b2e99a0 fffff803`125849d0     nt!IopLoadDriver+0x754
1a ffff960c`3b2e9b20 fffff803`12141b78     nt!IopLoadUnloadDriver+0xa0
1b ffff960c`3b2e9b80 fffff803`120d3840     nt!ExpWorkerThread+0x148
1c ffff960c`3b2e9d50 fffff803`1200be4c     nt!PspSystemThreadStartup+0x50
1d ffff960c`3b2e9d90 00000000`00000000     nt!KiStartSystemThread+0x24