PLCrashReporter未在Xcode 10 beta 5中编译

时间:2018-08-08 06:21:02

标签: ios objective-c xcode10 plcrashreporter

PLCrashReporter未在Xcode 10 beta中编译。好像是寄存器大小问题。

错误:指令movq%cs,160(%rsp)的操作数无效;

错误:指令movq%fs,168(%rsp)的操作数无效;

错误:指令movq%gs,176(%rsp)的操作数无效;

更改代码后,我确实遵循了此链接Thread documentation,其他说明也出错了。

错误:指令movl%cs的操作数无效,16 +56(%esp);

错误:指令movl%ds的操作数无效,16 +60(%esp);

错误:指令movl%es的操作数无效,16 +64(%esp);

非常感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

似乎beta 5有很多错误。

我的ln错误

beta 1〜4一切正常。加上Xcode 9

答案 1 :(得分:0)

使用此版本可修复作者存储库中的某些问题

https://github.com/Microsoft/PLCrashReporter

如果您想使用原始版本,请替换here中报告的PLCrashAsyncThread_current.S文件中的以下内容(行号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仍使用一些过时的功能,需要对其进行修复。

答案 2 :(得分:0)

尝试将{{1}中的MOVQ从{96}行更改为movw中的PLCrashAsyncThread_current.S,如下所示:

movw    %cs, 160(%rsp);
movw    %fs, 168(%rsp);
movw    %gs, 176(%rsp);

更多信息检查here

ps,文件中存在其他错误,可以从 yumoji 提到的here中查看解决方案。

最良好的祝愿!