Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.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
Android Studio中的lldb:选择帧不工作_Android_Android Studio_Lldb - Fatal编程技术网

Android Studio中的lldb:选择帧不工作

Android Studio中的lldb:选择帧不工作,android,android-studio,lldb,Android,Android Studio,Lldb,我正在Android Studio 1.5中进行本机调试。问题是lldb查看错误的帧(最底层),因此没有向我显示正确的寄存器值 select frame 似乎没有任何效果: (lldb)英国电信 *线程#1:tid=30637,0x400e429e libc.sostrncpy,name='WHATEVER',stop reason=breakpoint 2.1 帧0:0x400e429e libc.sostrncpy *帧#1:0x406ba1b0 libicuuc.so (lldb)帧信息

我正在Android Studio 1.5中进行本机调试。问题是lldb查看错误的帧(最底层),因此没有向我显示正确的寄存器值

select frame
似乎没有任何效果:

(lldb)英国电信 *线程#1:tid=30637,0x400e429e libc.so
strncpy,name='WHATEVER',stop reason=breakpoint 2.1
帧0:0x400e429e libc.so
strncpy *帧#1:0x406ba1b0 libicuuc.so (lldb)帧信息 帧#1:0x406ba1b0 libicuuc.so

(lldb) frame select 0
frame #0: 0x400e429e libc.so`strncpy
libc.so`strncpy:
->  0x400e429e <+0>: push   {r4, lr}
    0x400e42a0 <+2>: cbz    r2, 0x400e42c4            ; <+38>
    0x400e42a2 <+4>: subs   r1, #0x1
    0x400e42a4 <+6>: mov    r3, r0
(lldb) frame info
frame #1: 0x406ba1b0 libicuuc.so
(lldb) register read
General Purpose Registers:
        r4 = 0x40773ed4  
        r5 = 0x407762a8  
        r6 = 0x00000000
        r7 = 0x40745eb0  
        r8 = 0xbe9f2d30
        r9 = 0xbe9f2b20
       r10 = 0x400f8384  libc.so`__stack_chk_guard
       r11 = 0x77205d00
        sp = 0xbe9f2d30
        lr = 0x406ba1b1  
        pc = 0x75cdbd38
      cpsr = 0x200b0030
5 registers were unavailable.
(lldb)帧选择0
帧#0:0x400e429e libc.so`strncpy
libc.so`strncpy:
->0x400e429e:推送{r4,lr}
0x400e42a0:cbz r2,0x400e42c4;
0x400e42a2:subs r1,#0x1
0x400e42a4:mov r3,r0
(lldb)帧信息
帧#1:0x406ba1b0 libicuuc.so
(lldb)寄存器读取
一般用途登记册:
r4=0x40773ed4
r5=0x407762a8
r6=0x00000000
r7=0x40745eb0
r8=0xbe9f2d30
r9=0xbe9f2b20
r10=0x400f8384 libc.so`\u堆栈\u chk\u保护
r11=0x77205d00
sp=0xbe9f2d30
lr=0x406ba1b1
pc=0x75cdbd38
cpsr=0x200b0030
5个登记册不可用。

有什么想法/建议吗?

听起来Android Studio在每个命令后都会重置框架-可能是为了让它与UI显示的内容保持同步。您选择了第0帧,但您的“帧信息”命令(该命令应显示第0帧的信息)将显示第1帧的信息

如果您在Android Studio UI中选择某个帧,然后在控制台中执行
frame info
,它是否会显示您在UI中选择的帧?如果这样做有效,那么
寄存器读取
也应该报告正确帧的寄存器,因此您现在可以将其用作解决方法

如果Android Studio有bug reporter,您可能会提交一个关于此问题的bug。lldb支持保持UI和命令行同步,但UI必须采用它