LLDB常用命令
来源:互联网 发布:通信网络 相关专业 编辑:程序博客网 时间:2024/05/28 17:06
LLDB常用命令
print (p)打印命令,打印变量以及其值:
p chars (char [10]) $0 = "i am test"
po 仅打印变量的值:
po chars "i am test"
call 就是调用的意思,上述po和p也有调用的功能。一般只在不需要显示输出,或是方法无返回值时使用。例如定义一个变量int p=0,使用
call
命令:
call p++ (int) $0 = 1
expr 可以在调试时动态执行指定表达式,并打印结果,用于在调试过程中修改变量的值
比如我们在程序里面定义int b=1;可以在断点的时候使用expr
更改其值。
expr b=10
(int) $0 = 10
bt 命令用来堆栈信息,加all可打印所有thread的堆栈,比如我们增加一段导致崩溃的代码
JNIEXPORT jstring JNICALLJava_com_jjz_NativeUtil_firstNative(JNIEnv *env, jclass type) { char chars[] = "i am test"; int p=0; p=1/0; return (*env)->NewStringUTF(env, chars);}
运行的时候出现了崩溃,这个时候运行bt
命令,得到堆栈信息:
*thread #1, name = 'com.jjz', stop reason = signal SIGFPE * frame #0: 0xf6ff35e8 libc.so`tgkill + 12 frame #1: 0xf6ff11ec libc.so`pthread_kill + 36 frame #2: 0xf6fcd846 libc.so`raise + 14 frame #3: libexperiment.so`__aeabi_idiv0 at lib1funcs.S:1337 frame #4: libexperiment.so`Java_com_jjz_NativeUtil_firstNative(env=0xf4218ea0, type=0xff8b732c) at experiment.c:16 frame #5: base.odex`java.lang.String com.jjz.NativeUtil.firstNative() at NativeUtil.java:0 frame #6: base.odex`void com.jjz.MainActivity.onCreate(android.os.Bundle) at MainActivity.java:15 frame #7: 0x729d58bf
image用于寻址,可以用来查找栈地址对应的代码位置,image命令有很多的参数,可以帮助我们更加清晰的定位问题,其中比较常用的是
image lookup
:
>image lookup --address 0xfxxxxx
0xfxxxxx
表示对应的栈地址,有了地址可以通过image lookup
命令来查看该栈地址上面对应的代码。
阅读全文
0 0
- lldb常用命令
- lldb 常用命令
- LLDB常用命令
- LLDB 调试常用命令
- lldb 常用命令整理
- LLDB调试常用命令
- LLDB 常用命令记录
- iOS--lldb常用命令总结
- xcode lldb常用命令
- LLDB
- iOS开发之LLDB断点调试和常用命令
- LLDB调试
- LLDB~expr
- lldb tips
- LLDB调试
- lldb调试
- lldb 调试
- LLDB命令
- MySql查询(三)
- Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
- impdp/expdp使用心得
- 三、Grid控件;练习
- cocos2dx 3.3 Scheduler简单分析
- LLDB常用命令
- 数据结构(C语言版 第2版)课后习题答案 严蔚敏 等 编著
- django创建第一个项目时,django-admin.py startproject name_of_project 失效
- 数据结构--排序算法--冒泡排序法
- cocos2dx 3.3 TMX系列简单分析
- java学习日记
- springMVC框架一之的登录功能的介绍
- Android控件RecyclerView的基本用法
- __declspec关键字详细用法