Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios atos提供了lldb未命名函数_Ios_Symbolicatecrash - Fatal编程技术网

Ios atos提供了lldb未命名函数

Ios atos提供了lldb未命名函数,ios,symbolicatecrash,Ios,Symbolicatecrash,我有一个正常情况下不会符号化的崩溃转储—当我将它拖到Xcode organizer中或手动运行symbolicatecrash时,系统符号会显示出来,但应用程序指令地址都未被触及 我尝试使用atos解决这个问题,但结果是: got symbolicator for myarchive.xcarchive/Products/Applications/MyApp.app/MyApp, base address 4000 ___lldb_unnamed_function2115$$MyApp (in

我有一个正常情况下不会符号化的崩溃转储—当我将它拖到Xcode organizer中或手动运行symbolicatecrash时,系统符号会显示出来,但应用程序指令地址都未被触及

我尝试使用atos解决这个问题,但结果是:

got symbolicator for myarchive.xcarchive/Products/Applications/MyApp.app/MyApp, base address 4000
___lldb_unnamed_function2115$$MyApp (in MyApp) + 992
___lldb_unnamed_function2096$$MyApp (in MyApp) + 66
___lldb_unnamed_function6053$$MyApp (in MyApp) + 348
___lldb_unnamed_function6064$$MyApp (in MyApp) + 162
___lldb_unnamed_function6002$$MyApp (in MyApp) + 18
___lldb_unnamed_function1029$$MyApp (in MyApp) + 416
___lldb_unnamed_function2280$$MyApp (in MyApp) + 106
___lldb_unnamed_function2272$$MyApp (in MyApp) + 198
___lldb_unnamed_function400$$MyApp (in MyApp) + 96
___lldb_unnamed_function1$$MyApp (in MyApp) + 36
当前映射到
\uuuuu lldb\u unnamed\u function1$$MyApp(在MyApp中)+36的地址应与main.m中的我的根调用相对应。显然,我不知道其他人应该是什么,但我猜如果一个人错了,他们都错了。这是什么原因造成的?除了嵌入在块中的函数外,\ uuuuu lldb\ u unnamed\ u函数是否通常出现在其他任何位置

不幸的是,这将是一个很长的问题,但由于在计算应用程序二进制文件的负载偏移量时可能会出错,因此我将列出生成上述输出所遵循的步骤

我使用
dwarfdump-u myarchive.xarchive/Products/Applications/MyApp.app/MyApp
验证我使用的二进制文件是否正确:

UUID: BA41E9A3-4BB5-3F8A-8D57-0D16447FFEC6 (armv7) myarchive.xcarchive/Products/Applications/MyApp.app/MyApp

UUID: A6E0970C-05FE-3A79-887D-84F3892637FD (armv7s) myarchive.xcarchive/Products/Applications/MyApp.app/MyApp
崩溃转储中的UUID与第一个UUID匹配:

Binary Images:
   0x97000 -   0x3cefff +MyApp armv7  <ba41e9a34bb53f8a8d570d16447ffec6> /var/mobile/Applications/AF97EC52-7A2F-4772-AA05-74E739BA6882/MyApp.app/MyApp
所以我运行了
xcrun-atos-l 0x97000-arch-armv7-o myarchive.xarchive/Products/Applications/MyApp.app/MyApp 0x001357dc 0x00134446 0x00240cec 0x002416ea 0x0023e2de 0x000de724 0x00144f1a 0x00144336 0x000b1024 0x0009d464
,这给了我上面的输出

注意:由于这看起来不正确,我想可能需要手动减去滑动值。我通过
xcrun-otool-arch-armv7-l myarchive.xarchive/Products/Applications/MyApp.app/MyApp获得了它:

Load command 0
      cmd LC_SEGMENT
  cmdsize 56
  segname __PAGEZERO
   vmaddr 0x00000000
   vmsize 0x00004000
  fileoff 0
 filesize 0
  maxprot 0x00000000
 initprot 0x00000000
   nsects 0
    flags 0x0
Load command 1
      cmd LC_SEGMENT
  cmdsize 736
  segname __TEXT
   vmaddr 0x00004000
   vmsize 0x00338000
  fileoff 0
 filesize 3375104
  maxprot 0x00000005
 initprot 0x00000005
   nsects 10
<snip>

您必须使用
dSYM
软件包调用
atos
,而不是应用程序包,因为这通常会去除符号

因此,电话是:

xcrun atos -l 0x97000 -arch armv7 -o myarchive.xcarchive/dSYMs/MyApp.app.dSYM 0x001357dc 0x00134446 0x00240cec 0x002416ea 0x0023e2de 0x000de724 0x00144f1a 0x00144336 0x000b1024 0x0009d464

您必须使用
dSYM
软件包调用
atos
,而不是应用程序包,因为这通常会去除符号

因此,电话是:

xcrun atos -l 0x97000 -arch armv7 -o myarchive.xcarchive/dSYMs/MyApp.app.dSYM 0x001357dc 0x00134446 0x00240cec 0x002416ea 0x0023e2de 0x000de724 0x00144f1a 0x00144336 0x000b1024 0x0009d464

啊!谢谢墨菲StackOverflow定律:我从未注意到我粗心的错误,直到我放弃并将其发布到世界。:-)我得到一个“无法为架构'armv7'的文件MyApp.app.dSYM加载符号”错误。该应用程序也仅使用armv7构建。嘎!谢谢墨菲StackOverflow定律:我从未注意到我粗心的错误,直到我放弃并将其发布到世界。:-)我得到一个“无法为架构'armv7'的文件MyApp.app.dSYM加载符号”错误。该应用程序也仅使用armv7构建。
xcrun atos -l 0x97000 -arch armv7 -o myarchive.xcarchive/dSYMs/MyApp.app.dSYM 0x001357dc 0x00134446 0x00240cec 0x002416ea 0x0023e2de 0x000de724 0x00144f1a 0x00144336 0x000b1024 0x0009d464