当前位置: 首页 > news >正文

厦门建站比较好的公司广西网站建设哪家不错

厦门建站比较好的公司,广西网站建设哪家不错,厦门seo公司,建一个个人网站要多少钱一、类介绍 在使用Python 自定义LLDB之前,先了解一下LLDB的一些类型 SBTarget 正在被调试的程序SBProcess 和程序关联的具体的进程SBThread 执行的线程SBFrame 和线程关联的一个栈帧SBVariable 变量,寄存器或是一个表达式 一般情况下,我们…

一、类介绍

在使用Python 自定义LLDB之前,先了解一下LLDB的一些类型

  • SBTarget 正在被调试的程序
  • SBProcess 和程序关联的具体的进程
  • SBThread 执行的线程
  • SBFrame 和线程关联的一个栈帧
  • SBVariable 变量,寄存器或是一个表达式

一般情况下,我们取到SBFrame就可以进行方法调用来打印关键信息

二、断点调试示例

在写Python前,先使用Xcode断点执行一下

自定义类MyClass
.h文件

@interface MyClass : NSObject+ (NSString *)lldbTest;@end

.m文件

@implementation MyClass+ (NSString *)lldbTest {return @"lldb test successed";
}@end

中断程序

打开lldb控制台

下面就开始写lldb的命令
预期目标,打印出[MyClass lldbTest]的返回值

输入script

(lldb) script
Python Interactive Interpreter. To exit, type 'quit()', 'exit()'.
>>> 

定义变量test接收MyClass lldbTest]的返回值

>>> test = lldb.frame.EvaluateExpression('(NSString *)[MyClass lldbTest]').GetObjectDescription()

打印变量test

>>> print(test)

至此,直接在Xcode中使用lldb打印出[MyClass lldbTest]的返回值就完成了

三、编写Python

如果想把这个功能打包起来,使用一句命令调用,就需要使用Python来扩展我们的lldb命令

1、新建Python文件

这里将Python文件命名问lldbtest.py

1、引入lldb头文件
import lldb
2、初始化函数
def __lldb_init_module(debugger, internal_dict):debugger.HandleCommand()

在HandleCommand中添加命令:

'command script add lldb_test -f lldbtest.test'

lldb_test表示命令名称,lldbtest是Python文件名,test是自定义方法名

初始化函数最终

def __lldb_init_module(debugger, internal_dict):debugger.HandleCommand('command script add lldb_test -f lldbtest.test')
3、自定义Python方法

获取当前的frame栈帧

  target = debugger.GetSelectedTarget()process = target.GetProcess()thread = process.GetSelectedThread()currentFrame = thread.GetSelectedFrame()

调用方法

def test(debugger, command, result, internal_dict):target = debugger.GetSelectedTarget()process = target.GetProcess()thread = process.GetSelectedThread()currentFrame = thread.GetSelectedFrame()test = currentFrame.EvaluateExpression('(NSString *)[Person lldbTest]').GetObjectDescription()print("result:%s" % test)

整个Python文件

#自定义lldb命令 
import lldbdef test(debugger, command, result, internal_dict):target = debugger.GetSelectedTarget()process = target.GetProcess()thread = process.GetSelectedThread()currentFrame = thread.GetSelectedFrame()test = currentFrame.EvaluateExpression('(NSString *)[Person lldbTest]').GetObjectDescription()print("result:%s" % test)def __lldb_init_module(debugger, internal_dict):debugger.HandleCommand('command script add lldb_test -f lldbtest.test')

四、自动加载python脚本

原理:xcode启动的时候会读取一个默认文件:~/.lldbinit
只需要将命令command script import /Users/xx/Desktop/lldbtest.py 写入这个文件即可。
/Users/xx/Desktop/lldbtest.py是Python文件路径

测试:

http://www.yayakq.cn/news/427661/

相关文章:

  • 建设企业学习网站品牌营销策划过程
  • 关于网站的建设论文长沙网站外包
  • 如何搭建英文网站四川高速公路建设开发集团有限公司网站
  • 男女做暖暖的试看网站标书制作员工资很低吗
  • 中山做网站企业有内涵的公司名
  • 网站建设设计费会计分录郑州设计师网站大全
  • 重庆有哪些做网站的公司外包公司与劳务派遣
  • 网站开发前端库静态网站怎么做有效页
  • excel做网站二维码如何把代码wordpress
  • 中国建设培训网站查询系统国家企业信用公示信息查询平台
  • 口子网站怎么做贵阳市住房城乡建设局官方网站
  • 制作公司网站的作用个人申请免费企业邮箱
  • 做网站就是做app渭南市住房和城乡建设部网站
  • 成都英文网站建设网站服务合同模板
  • 如何推广网站业务网站手机客户端制作
  • 建设网站所需的费用的估算网站开发推荐
  • 如何学习网站开发企业门户 登录
  • 一键建站公司校园网网络规划与设计方案
  • 手机商城+手机网站建设多少钱个人网站可以做淘宝客
  • 如何设置网站公司动态2023年7月最新新闻摘抄
  • vue可以做网站吗wordpress 企业 自适应
  • 成都免费建站网页设计版权信息代码
  • 某品牌休闲零食网站建设规划书华为的网络营销方式
  • 手机网站域名绑定凡人网站建设
  • 旅游网站建设 pig网页美化工具有哪些
  • 网站友情链接怎么样做赣州人才网暑假工
  • 游戏分类网站怎么做php电影网站开发
  • 秦皇岛网站建设哪家好嘉纪商正网站建设公司
  • 郑州做网站网络公司辛集市住房和城乡建设局网站
  • 上海网站建设鹤壁建设网站推广