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

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

2015-8-18 11:55
5941
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指令.

[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

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