LLDB调试增强插件Chisel安装与使用教程

Mac的Visual Studio Code的CodeLLDB插件 mac visual studio code的CodeLLDB插件,用于调试C/CPP代码,插件配合Code Runner进行使用,下载后可以通过code --install-extension 插件路径进行离线安装。 立即下载

chisel是一款facebook出品的LLDB调试器增强插件,添加了诸如pviews,show,hide等命令,详细可以查看chisel wiki

安装

我们可以使用Homebrew来安装chisel,没有安装Homebrew的同学请戳Homebrew安装

已经安装了Homebrew可以直接使用下面的命令安装chisel

brew install chisel

安装完成
执行命令结果如上图表示已经完成安装,注意红框部分,要求我们在根目录下的.lldbinit文件中添加如下代码

# ~/.lldbinit
...
command script import /usr/local/opt/chisel/libexec/fblldb.py

按照chisel github上所述,也可以在该文件下添加

# ~/.lldbinit
...
command script import /path/to/fblldb.py

添加完成后重启Xcode,打开断点运行,在LLDB中输入help,显示如下所有表示chisel安装成功

chisel安装成功

使用

现在我们已经可以在LLDB中使用chisel的命令了,让我们来看几个常用的命令

pviews 查看视图层次

pviews

pvc 查看控制器层次

pvc

fv/fvc 类似pviews与pvc,搜索视图和控制器.支持正则

visualize 使用mac的预览应用打开一个视图

visualize

border/unborder 添加/去掉边界 标识出视图

border

caflush 更改ui的时候不需要重新run,直接刷新ui

taplog 点击屏幕的时候,屏幕会暂停并在控制台打印触摸到的view

tap

presponder/pclass 打印响应链/继承链

presponder/pclass

wivar 设置Watchpoint,相当于KVO

LLDB-Is-It-Not, 加载项目特定的Xcode插件lldbinit.zip LLDB-Is-It-Not, 加载项目特定的Xcode插件lldbinit 如果你想要加载你的项目的特定设置,请先输入?LLDB通常加载它在当前工作目录中找到的.lldbinit 文件。 不幸的是,Xcode没有这种行为。 ( 存档方式为 立即下载

相关推荐

Aspen Plus下载教程Aspen Plus V14 保姆级安装步骤(附安装包)

26、在WlmAdmin界面中,依次点击【Subnet Servers】、【admin】、【Add Feature】、【From a File】、【To Server and its File】。35、在产品选择页面,勾选需要安装的所有产品(重要:不要勾选【Aspen Online(Plant Data)】),然后点击【File Location】。回到桌面,点击任务栏的【开始菜单】,在【所有应用】中找到【Aspen Plus V14】软件图标,将其拖到桌面上创建快捷方式。9、这里可以更改软件的安装位置。

ps_xiaowang的博客 1万+

CodeLLDB的快速安装

安装CodeLLDB插件后,用户可以通过Visual Studio Code进行C/C++代码的调试,包括设置断点、查看变量值、执行表达式以及修改内存等操作。CodeLLDB插件不仅提供了强大的调试功能,还支持调试配置文件的编写和保存,方便用户在以后的调试会话中快速加载。此外,该插件支持多种平台和架构,包括‌。,以及数据可视化和反汇编等功能,从而使得开发人员能够更方便地在Visual Studio Code中进行C、C++和Objective-C代码的调试工作。这样这个插件就安装完成了,完美!

2582

告别环境配置烦恼:用Conda一键搞定GATK4、samtools、fastp等生信分析全家桶

本文介绍如何利用Conda快速搭建包含GATK4、samtools、fastp等工具的生物信息学分析环境,解决软件安装和版本冲突问题。通过详细的配置步骤和实战案例,帮助研究者十分钟内完成重测序分析全家桶的环境配置,显著提升上游分析效率。

weixin_30753873的博客 335

LLDB插件LLEF的安装与配置指南

LLDB插件LLEF的安装与配置指南 1. 项目基础介绍 LLEF(发音为 "hlyeff")是一个为LLDB开发的插件,旨在通过添加额外的状态输出和几个新命令来增强LLDB的功能,使其更适合低级逆向工程(RE)和虚拟机调试(VR)。LLEF利用LLDB的Python API,帮助安全研究人员在软件运行时更轻松地分析软件。 主要编程语言:Python 2. 关键技术和框架 LL...

gitblog_00305的博客 637

使用 Mid360 从零开始搭建实物机器人入门级导航系统 —— 基于 Fast_Lio 和 Move_Base

本文详细介绍了如何使用Mid360机器人从零开始搭建一个基于Fast_Lio和Move_Base的入门级导航系统。通过配置 ROS2、集成激光雷达、IMU、Fast_Lio、Move_Base 等模块,我们成功构建了一个能够实现自动导航的机器人系统。在实际开发中,随着需求的变化,你可以不断调整参数、优化路径规划算法、增加新的传感器等,逐步提升机器人的智能与功能。

小蜗牛的珍贵百宝箱 3567

SAP系统从ECC升级至S/4 HANA的实现路径及项目过程

从SAP ECC升级到 S/4 HANA,通常是一个复杂的转型过程,涉及到企业资源规划系统的全面现代化

saplakes的博客 2904

ALB项目技术揭秘:雷达hack的工作原理与实现机制

ALB(GitHub 加速计划)是一款专注于提升GitHub访问速度的工具,通过创新的雷达hack技术,为开发者提供稳定高效的代码仓库访问体验。本文将深入解析ALB项目中雷达hack的核心工作原理与实现机制,帮助用户全面了解这款工具的技术魅力。 ## 一、雷达hack技术的核心原理 雷达hack技术是ALB项目的核心竞争力,其灵感来源于网络数据传输的动态优化理念。该技术通过实时监测网络环境中的

gitblog_00611的博客 876

组态王的日历时间控件脚本

日期时间控件中的脚本中在小于10的月份和天数前必须要加上0,这是由首字符对比机制规定的,首字母相同,就不再不做对比了,比如1和11,是一样的。首字母不同,再比较下一位。 float Ayear1; float Amonth1; float Aday1; string temp1; Ayear1=sd.Year; Amonth1=sd.Month; Aday1=sd.Day; temp1=StrFromInt( Ayear1, 10 ); if(Amonth1<10) temp1=temp1+"-0"+

逍遥子的博客 5718

LLDB插件提升开发效率

LLDB插件提升开发效率 LLDB插件的的配置使用以及安装过程中遇到的问题记录! chisel facebook提供的lldb插件chisel。Github地址 利用brew安装 brew install chisel 配置.lldbinit文件,lldb在启动的时候会默认调用这个文件 cd ~/ touch .lldbinit (文件存在则忽略这一步) // 在.lldbinit加入代码,...

WJ的博客 960

rk3399开发环境的介绍

由于Bluez的介绍文档有限,以及对Linux 系统/驱动概念、D-Bus 通信和蓝牙协议都有要求,加上网络上其实没有一个完整的介绍Bluez系列的文档,所以不管是蓝牙初学者还是蓝牙从业人员,都有不小的难度,学习曲线也相对较陡,所以我有了这个想法,专门对Bluez做一个系统性的介绍,尽可能的涵盖所有内容。

朝气蓬勃 711

Unity之OpenXR+XR Interaction Toolkit实现 Gaze眼部追踪

在虚拟现实(VR)和增强现实(AR)应用中,眼动追踪是一项强大而受欢迎的技术。它可以让开发者更好地理解用户的注意力和行为,并创造出更加沉浸和智能的体验。在本文中,我们将探讨如何使用 Unity OpenXR 实现Gaze眼部追踪功能。

TxNet 1751

iOS lldb调试Chisel增强插件安装过程

//联系人:石虎  QQ: 1224614774 昵称:嗡嘛呢叭咪哄 一、概念 安装Chisel之前先安装一下Homebrew,在终端执行下面一行命令安装完毕  ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 图1: 终端执行brew upd

石虎 645

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

通过Chisel加强LLDB的UI调试能力

sudo brew install chisel xcode-select --install     echo  command script import /usr/local/Cellar/chisel/1.0.0/libexec/fblldb.py >> ~/.lldbinit

余书懿 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LLDB插件chisel的安装

LLDB 是一个有着 REPL 的特性和 C++ ,Python 插件的开源调试器。LLDB 绑定在 Xcode 内部,存在于主窗口底部的控制台中。调试器允许你在程序运行的特定时暂停它,你可以查看变量的值,执行自定的指令,并且按照你所认为合适的步骤来操作程序的进展。(这里有一个关于调试器如何工作的总体的解释。) 相信每个人或多或少都在用LLDB来调试,比如po一个对象。LLDB的是非常强大的

u014773226的博客 556

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Chisel LLDB 加强工具

Chisel是一个加强LLDB调试能力的插件,由Facebook 开发 地址  安装和使用已经很详细了,但是在安装完成后出现一些问题。 1.首先安装 chisel 使用 brew   brew 安装命令如下: curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/local

wangxiaoit的专栏 728

(转)通过Chisel加强LLDB的UI调试能力

原文地址:http://blog.youkuaiyun.com/ysy441088327/article/details/20943995 引言: Chisel是一个加强LLDB调试能力的小插件.主要特点在于辅助界面开发调试时在控制台以尽可能直观的方式查看界面的元素和情况.为我们梳理视图,控制器以及类关系层级. 以及一些临时的界面调试变动进行快捷响应.它的作者来自于Facebook团队.得益于开源...

weixin_30895603的博客 82

Chisel-xcode 下的调试神器

在平时的测试工作中,当拿到一个新的工程,面对demo 的各种控件,要查看当前控件对象的类的继承关系,可以通过pclass来查看,比如UIViewController处设置断点,呼出lldb控制台,然后再这里输入pclass这个命令,其中参数0x10400ba00为 tableView 对象的地址。除了需要对对象有一个纵向的认识外,要了解到对象之间的横向关系,使用presponder指令,如图五所示,列出了集成于tableView控件的消息传递链,方便我们查看消息是如何传递的。...

hogwarts_ziqi的博客 405

Chisel-LLDB命令插件,让调试更Easy

LLDB 是一个有着 REPL 的特性和 C++ ,Python 插件的开源调试器。LLDB 绑定在 Xcode 内部,存在于主窗口底部的控制台中。调试器允许你在程序运行的特定时暂停它,你可以查看变量的值,执行自定的指令,并且按照你所认为合适的步骤来操作程序的进展。(这里有一个关于调试器如何工作的总体的解释。) 相信每个人或多或少都在用LLDB来调试,比如po一个对象。LLDB的是非常强大的

u011344883的专栏 442

XCode 调试技巧 工具

LLdb篇2教你使用faceBook的chisel来提高调试效率 这次真是久违的第二篇了,过年的时候一直在帮家里带孩子,顺便用webStorm这个神器重新温习了下前端的知识。然后最近刚来北京又是重感冒,又是找房子,整个来说coding还是写博客效率极低又苦不堪言。 首先如果使用lldb,最好你要学着使用chisel来提高效率,否则你会浪费很多的时间,除非你自己会写python脚本,

小朴朴的博客 418

LLDB QuickLook 使用指南

LLDB QuickLook 是一个旨在提升 iOS 和 macOS 开发调试体验的开源工具。它通过在 LLDB 调试器中引入 `quicklook` 和 `ql` 命令,允许开发者直接从命令行预览对象的 Quick Look 预览。这特别适用于那些需要深入了解程序运行时数据状态的情况。项目由 Ryan Olson 维护,并采用 MIT 许可证发布。通过简单实现 `quickLookDebugDa

gitblog_00309的博客 922

LLDB调试器总结

LLDB 是一个有着 REPL 的特性和 C++ ,Python 插件的开源调试器。LLDB 绑定在 Xcode 内部,存在于主窗口底部的控制台中。调试器允许你在程序运行的特定时暂停它,你可以查看变量的值,执行自定的指令,并且按照你所认为合适的步骤来操作程序的进展。(这里有一个关于调试器如何工作的总体的解释。) 基础 help <变量> //了解命令的更多细节 p <变量> //p是print的简写

shenhualxt的专栏 1356
上一篇: Git 常用命令详解(一)
下一篇: 使用SourceTree拉取代码出现Permission denied (publickey)
zZZ浮生
博客等级 码龄11年 12粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值