PLCrashReporter未在Xcode 10 beta中编译。似乎是寄存器大小问题。
错误:指令movq%cs,160(%rsp)的无效操作数;
错误:指令movq%fs,168(%rsp)的无效操作数;
错误:指令movq%gs,176(%rsp)的无效操作数;
在更改代码后,我确实遵循了此链接https://github.com/plausiblelabs/plcrashreporter/pull/12/files,其他说明都出错了。
错误:指令movl%cs的操作数无效,16 +56(%esp);
错误:指令movl%ds的无效操作数,16 +60(%esp);
错误:指令movl%es的无效操作数,16 +64(%esp);
非常感谢您的帮助。
似乎Beta 5有很多错误。
我的是ln
错误
beta 1〜4一切正常。加上Xcode 9
使用此版本可修复作者资源库中的某些问题
https://github.com/Microsoft/PLCrashReporter
如果您想使用原始版本,请按照PLCrashAsyncThread_current.S
的报告,替换here文件中的以下内容(行号149附近)>
#if 0 MOVL (cs, 56); MOVL (ds, 60); MOVL (es, 64); MOVL (fs, 68); MOVL (gs, 72); #undef MOVL #else movl $0, 56(%esp); movw %cs, 56+OFF(%esp); movl $0, 60(%esp); movw %ds, 60+OFF(%esp); movl $0, 64(%esp); movw %es, 64+OFF(%esp); movl $0, 68(%esp); movw %fs, 68+OFF(%esp); movl $0, 72(%esp); movw %gs, 72+OFF(%esp); #endif
注意,这只会部分解决它。对于自旋锁和内存屏障,PLCR仍使用一些过时的功能,需要对其进行修复。
尝试将MOVQ
的movw
从96行更改为PLCrashAsyncThread_current.S
中的98行,如下所示: