首页
社区
课程
招聘
[求助]IOS的gdb调试--强制thumb显示的问题
发表于: 2015-8-18 11:55 6496

[求助]IOS的gdb调试--强制thumb显示的问题

2015-8-18 11:55
6496
IDA分析的是thumb汇编形式,然而gdb调试显示的是arm汇编形式
(gdb) x/10i $pc
0x2ab31c:  81 b0 04 46                   strmi  r11, [r4], -r1, lsl #1
0x2ab320:  4c f6 28 30                   eorcc  pc, r8, r12, asr #12
0x2ab324:  c0 f2 3a 00                   eorseq  pc, r10, r0, asr #5
0x2ab328:  44 f2 9a 22                   addscs  pc, r10, #1073741828  ; 0x40000004
0x2ab32c:  c0 f2 3b 02                   eorseq  pc, r11, #12  ; 0xc
0x2ab330:  78 44 7a 44                   ldrbtmi  r4, [r10], #-1144
0x2ab334:  01 68 10 68                   ldmdavs  r0, {r0, r11, sp, lr}
0x2ab338:  41 f2 1c ea                   b  0x9e7c44
0x2ab33c:  3f 46 41 f2                   vmin.s8  d20, d1, d31
0x2ab340:  62 ea 05 46                   strmi  lr, [r5], -r2, ror #20
此时,寄存器显示的信息,t位是1

gdb) info r
r0             0x161eda00  371120640
r1             0x54eb12  5565202
r2             0x15f53e40  368393792
r3             0x15f00850  368052304
r4             0x161eda00  371120640
r5             0x54eb12  5565202
r6             0x15f53e40  368393792
r7             0x27df5008  668946440
r8             0x15f00850  368052304
r9             0x1623dc90  371448976
r10            0x15da59d0  366631376
r11            0x0  0
r12            0x2ab319  2798361
sp             0x27df4ffc  668946428
lr             0x31418037  826376247
pc             0x2ab31c  2798364
cpsr           {
  0x60000030,
  n = 0x0,
  z = 0x1,
  c = 0x1,
  v = 0x0,
  q = 0x0,
  j = 0x0,
  ge = 0x0,
  e = 0x0,
  a = 0x0,
  i = 0x0,
  f = 0x0,
  t = 0x1,
  mode = 0x10
}  {
  0x60000030,
  n = 0,
  z = 1,
  c = 1,
  v = 0,
  q = 0,
  j = 0,
  ge = 0,
  e = 0,
  a = 0,
  i = 0,
  f = 0,
  t = 1,
  mode = usr
}

网上说用set arm force-mode thumb ,经过实践,只有Android的gdb与gdb_server是有这条命令的,调试IOS的gdb没有.如下

(gdb) set arm force-mode thumb
Undefined set arm command: "force-mode thumb".  Try "help set arm".
(gdb) help set arm
Various ARM-specific commands.

List of set arm subcommands:

set arm abi -- Set the ABI
set arm apcs32 -- Set usage of ARM 32-bit mode
set arm disassembler -- Set the disassembly style
set arm fpu -- Set the floating point type
set arm show-opcode-bytes -- Set ARM and Thumb opcode byte display in disassembly
set arm single-step -- Set the ARM stepping mode

Type "help set arm" followed by set arm subcommand name for full documentation.
Command name abbreviations are allowed if unambiguous.

有大牛知道如何解决此问题吗

采用lldb的现象是
iPhone4的debugserver_armv7,采用lldb调试成功且可以正常显示thumb指令.
iPhone5的debugserver_armv7与debugserver_armv7s,采用lldb调试成功,但不可以正常显示thumb指令,会解释成arm指令.

问题:lldb的iPhone5的解释错误如何处理,我要的是ni后,能正常显示thumb指令.

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 25
活跃值: (100)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
升级lldb到最新版本
2015-8-18 19:43
0
雪    币: 163
活跃值: (1623)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
我退回到Xcode5.0.2的lldb正常
2015-8-19 10:33
0
游客
登录 | 注册 方可回帖
返回
//