2

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) 的操作数无效;

任何帮助深表感谢。

4

3 回答 3

0

看起来 beta 5 有很多错误。

我的是ln错误

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

于 2018-08-09T02:03:15.977 回答
0

尝试从第 96 行更改为第 98 行MOVQ,如下所示:movwPLCrashAsyncThread_current.S

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

更多信息检查这里

ps,文件中还有一个错误,你可以从这里查看yumoji提到的解决方案。

最好的祝愿!

于 2019-10-22T02:55:31.487 回答
0

使用此版本,它修复了作者存储库中的一些问题

https://github.com/Microsoft/PLCrashReporter

如果您喜欢使用原始版本,请按照此处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 仍然对需要修复的自旋锁和内存屏障使用一些已弃用的函数。

于 2019-02-21T04:45:40.207 回答