PLCrashReporter未在Xcode 10 beta 5中编译

问题描述 投票:2回答:3

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);

非常感谢您的帮助。

ios objective-c xcode10 plcrashreporter
3个回答
0
投票

似乎Beta 5有很多错误。

我的是ln错误

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


0
投票

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

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仍使用一些过时的功能,需要对其进行修复。


0
投票

尝试将MOVQmovw从96行更改为PLCrashAsyncThread_current.S中的98行,如下所示:

© www.soinside.com 2019 - 2024. All rights reserved.