【问题标题】:PLCrashReporter not compiling in Xcode 10 beta 5PLCrashReporter 未在 Xcode 10 beta 5 中编译
【发布时间】:2018-08-08 06:21:02
【问题描述】:

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


【解决方案1】:

beta 5 似乎有很多 bug。

我的是ln错误

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

【讨论】:

    【解决方案2】:

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

    https://github.com/Microsoft/PLCrashReporter

    如果您想使用原始版本,请替换 PLCrashAsyncThread_current.S 文件中的以下内容(大约第 149 行),如报告的 here

    #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 仍然使用一些已弃用的函数用于需要修复的自旋锁和内存屏障。

    【讨论】:

      【解决方案3】:

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

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

      更多信息查看here

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

      祝你好运!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-03
        • 1970-01-01
        • 1970-01-01
        • 2015-10-30
        相关资源
        最近更新 更多