IOS开发--常用的基本GDB命令
gdb不是万能的,可是没有gdb却是万万不能的。这里给大家简单介绍下iOS开发中最基本的gdb命令。
po
po是print-object的简写,可用来打印所有NSObject对象。使用举例如下:

(gdb) po self <LauncherViewController: 0x552c570> (gdb) po [self view] <UIView: 0x544eb80; frame = (0 0; 320 411); autoresize = W+H; layer = <CALayer: 0x544ebb0>> (gdb) print-object [self view] <UIView: 0x544eb80; frame = (0 0; 320 411); autoresize = W+H; layer = <CALayer: 0x544ebb0>>

p
p是print的简写,可以用来打印所有的简单类型,如int, float,结构体等。使用举例如下:

(gdb) p self $1 = (LauncherViewController *) 0x552c570 (gdb) p [[self view] size] Unable to call function “objc_msgSend” at 0x1e7e08c: no return type information available. To call this function anyway, you can cast the return type explicitly (e.g. ‘print (float) fabs (3.0)’) (gdb) p (CGSize)[[self view] size] $1 = { width = 320, height = 411 } (gdb) print (CGSize)[[self view] size] $2 = { width = 320, height = 411 }

call
call即是调用的意思。其实上述的po和p也有调用的功能。因此一般只在不需要显示输出,或是方法无返回值时使用call。使用举例如下:

(gdb) call [[self view]sizeToFit] Unable to call function “objc_msgSend” at 0x1e7e08c: no return type information available. To call this function anyway, you can cast the return type explicitly (e.g. ‘print (float) fabs (3.0)’) (gdb) call (void)[[self view]sizeToFit] (gdb) call [[self view] size] Unable to call function “objc_msgSend” at 0x1e7e08c: no return type information available. To call this function anyway, you can cast the return type explicitly (e.g. ‘print (float) fabs (3.0)’) (gdb) call (void)[[self view] size]

**************************************************************************************************************
Xcode的调试器为用户提供了一个GDB的界面,GDB是GNU组织的开放源代码调试器。您可以在Xcode的图形界面里做任何事情;但是,如果您需要 您可以在命令行里使用GDB的命令。
要在一个调试的任务里输入GDB命令行命令:
在工具栏里点击Console Drawer (控制台抽屉窗口)按钮打开控制台。
您可以在控制台里查看Xcode调试器发送给GDB的命令,或者您可以直接在控制台里输入GDB命令。在控制台窗口里点击然后在gdb提示符后面 输入命令。
break NUM | 在指定的行上设置断点。 |
bt | 显示所有的调用栈帧。该命令可用来显示函数的调用顺序。 |
clear | 删除设置在特定源文件、特定行上的断点。其用法为:clear FILENAME:NUM。 |
continue | 继续执行正在调试的程序。该命令用在程序由于处理信号或断点而导致停止运行时。 |
display EXPR | 每次程序停止后显示表达式的值。表达式由程序定义的变量组成。 |
file FILE | 装载指定的可执行文件进行调试。 |
help NAME | 显示指定命令的帮助信息。 |
info break | 显示当前断点清单,包括到达断点处的次数等。 |
info files | 显示被调试文件的详细信息。 |
info func | 显示所有的函数名称。 |
info local | 显示当函数中的局部变量信息。 |
info prog | 显示被调试程序的执行状态。 |
info var | 显示所有的全局和静态变量名称。 |
kill | 终止正被调试的程序。 |
list | 显示源代码段。 |
make | 在不退出gdb的情况下运行make工具。 |
next | 在不单步执行进入其他函数的情况下,向前执行一行源代码。 |
print EXPR | 显示表达式EXPR的值。 |
print- object | 打印一个对象 |
print (int) name | 打印一个类型 |
print- object [artist description] | 调用一个函数 |
set artist = @"test" | 设置变量值 |
whatis | 查看变理的数据类型 |
IOS开发--常用的基本GDB命令的更多相关文章
- iOS开发常用第三方库
UI 动画 网络相关 Model 其他 数据库 缓存处理 PDF 图像浏览及处理 摄像照相视频音频处理 响应式框架 消息相关 版本新API的Demo 代码安全与密码 测试及调试 AppleWatch ...
- iOS开发-常用第三方开源框架介绍
iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网 ...
- IOS开发常用设计模式
IOS开发常用设计模式 说起设计模式,感觉自己把握不了笔头,所以单拿出iOS开发中的几种常用设计模式谈一下. 单例模式(Singleton) 概念:整个应用或系统只能有该类的一个实例 在iOS开发我们 ...
- iOS开发--常用技巧 (MJRefresh详解)
iOS开发--常用技巧 (MJRefresh详解) https://github.com/CoderMJLee/MJRefresh 下拉刷新01-默认 self.tableView.head ...
- 开发常用Git/Linux/idea命令快捷键总结(持续更新)
在开发过程中,会使用越来越多的命令,或快捷键,来帮助我们提高工作效率.本文记录了我在平时积累的常用命令,分享给大家. git命令 基本命令 set LESSCHARSET=utf-8 --idea T ...
- IOS开发之----常用的基本GDB命令【转】
原文地址:http://blog.sina.com.cn/s/blog_71715bf801016d2y.html gdb不是万能的,可是没有gdb却是万万不能的.这里给大家简单介绍下iOS开发中最基 ...
- iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)--(转)
图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. 下 ...
- iOS 开发常用的调试工具
前言 最近博主临近毕业季,为了完美的写一篇毕业论文,真是:“锄禾日当午,汗滴禾下土”<—— 这句诗跟毕业我写毕业论文没任何一毛钱关系,我就是突然想吟湿了.不过博主作为网络工程专业的好青年,曾经的 ...
- IOS开发--常用工具类收集整理(Objective-C)(持续更新)
前言:整理和收集了IOS项目开发常用的工具类,最后也给出了源码下载链接. 这些可复用的工具,一定会给你实际项目开发工作锦上添花,会给你带来大大的工作效率. 重复造轮子的事情,除却自我多练习编码之外,就 ...
随机推荐
- Nopcommerce主要的技术
Nopcommerce主要用到的技术及特点: 1.Entity Framework 2.ASP.NET mvc 3.IoC容器+依赖注入(Autofac) 4.使用EF中的EntityTypeConf ...
- 调用Ajax返回500错误的解决方法
看代码: public ActionResult UserLogin(LogOnModel model) { #region 验证码验证 #endregion OperationResult resu ...
- gcview使用
1.下载适用的版本 https://github.com/chewiebug/GCViewer Supported verbose:gc formats are: Oracle JDK 1.8 -Xl ...
- Tracert 转
路由跟踪在线Tracert Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据报访问目标所采取的路径.Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确 ...
- 《微信小程序七日谈》- 第一天:人生若只如初见
<微信小程序七日谈>系列文章: 第一天:人生若只如初见: 第二天:你可能要抛弃原来的响应式开发思维: 第三天:玩转Page组件的生命周期: 第四天:页面路径最多五层?导航可以这么玩 微信小 ...
- nodeJS 菜鸟入门
从一个简单的 HTTP 服务开始旅程-- 创建一个 server.js 文件,写入: //最简单的 http 服务例子 var http = require("http"); ht ...
- UnityShader快速上手指南(二)
简介 前一篇介绍了如果编写最基本的shader,接下来本文将会简单的深入一下,我们先来看下效果吧 呃,gif效果不好,实际效果是很平滑的动态过渡 实现思路 1.首先我们要实现一个彩色方块 2.让色彩动 ...
- jQuery实现表格拖动排序
原理就是利用mousedown.mouseover.mouseup事件实现拖动,并用Ajax实现保存结果. JS代码如下: <!--题目调序功能--> <script type=&q ...
- JS Array ECMAScript5 Methods
JavaScript 的新版本(ECMAScript 5)中,为数组新增了一些方法.这些方法包括: forEach(f [,o]): 此方法类似于for/in循环,其作用是遍历整个数组并执行函数的某些 ...
- yyyy/M/d h:m:s 转换成 yyyy-MM-dd hh:mm:ss
var arrTime = (dtime).replace("/", "-").replace("/", "-"); v ...