标签: lldb

删除Xcode 4.5.2中的监视变量

我可以通过Xcode调试区域中的"Watch'变量'来观察一个变量,它可以正常工作,因为Xcode会在观察变量变化时中断.但是,由于我没有看到"观察窗口",我怎么能删除观察到的变量?或者看到我正在看的变量?通过LLDB命令?

debugging watch lldb xcode4.5

1
推荐指数
1
解决办法
2549
查看次数

@pronties在@synthesized时在调试器中出现意外行为,然后在子类中访问

我有一些@properties在调试器中表现得很奇怪@synthesize,然后继承控制器.

当我删除@synthesize时,@ property会按预期运行.

这是一个基本的例子,一个ViewController叫做的子类SubClassedViewController.

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController {
    NSNumber *someNumber;
}

@property (nonatomic, strong) NSNumber *someNumber;

@end
Run Code Online (Sandbox Code Playgroud)

ViewController.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

@synthesize someNumber;  //Strange behavior unless I remove this line

- (void)viewDidLoad
{
    [super viewDidLoad];
    someNumber = [NSNumber numberWithInt:123];
    // Do any additional setup after loading the view, typically from a nib.
}

@end
Run Code Online (Sandbox Code Playgroud)

SubClassedViewController.h

#import "ViewController.h"

@interface SubClassedViewController : ViewController

@end
Run Code Online (Sandbox Code Playgroud)

SubClassedViewController.m

#import "SubClassedViewController.h" …
Run Code Online (Sandbox Code Playgroud)

objective-c ios lldb

1
推荐指数
1
解决办法
2952
查看次数

使用树顶部的lldb和xcode

我在/ usr/local/bin中构建了lldb树的顶部,我想告诉xcode使用这个二进制文件而不是默认的二进制文件.但我找不到如何/在哪里设置这个.

xcode lldb

1
推荐指数
1
解决办法
383
查看次数

断点是否可以显示"const unsigned char*variable"的内容?

我正在研究为什么Bonjour服务发现中的TXT记录的内容有时被不完整地解释,并且我已经达到了这样一个点,即断点打印出unsigned char的内容真的很有用.在回调中(我已经尝试过NSLog,但在线程回调中使用NSLog会变得非常棘手).

回调函数以这种方式定义:

static void resolveCallback(DNSServiceRef sdRef, DNSServiceFlags flags, uint32_t interfaceIndex, DNSServiceErrorType errorCode,
                        const char* fullname, const char* hosttarget, uint16_t port, uint16_t txtLen,
                        const unsigned char* txtRecord, void* context) {
Run Code Online (Sandbox Code Playgroud)

所以我对txtRecord感兴趣

现在我的断点正在使用:

 memory read --size 4 --format x --count 4 `txtRecord`
Run Code Online (Sandbox Code Playgroud)

但这仅仅是因为这是lldv.llvm.org示例页面上的一个示例;-)它肯定会显示我期望在那里部分的数据.

我是否必须应用有关长度的知情知识,或者可以对断点进行编码,使其使用存在的长度?我在想,除了"硬编码"示例中的两个4之外,还应该有一种方法可以将其他读取指令包含在后面的内容中,就像我使用变量名一样.

看看http://lldb.llvm.org/varFormats.html我以为我会尝试使用C格式而不是x但是会打印出一系列的点,这些点必须意味着我选择了错误的格式或其他内容.

我刚试过

memory read `txtRecord`
Run Code Online (Sandbox Code Playgroud)

这几乎正​​是我想看到的,因为它给出了:

0x1c5dd884: 10 65 6e 30 3d 31 39 32 2e 31 36 38 2e 31 2e 33  .en0=192.168.1.3
0x1c5dd894: 36 0a 70 6f 72 74 3d 35 …
Run Code Online (Sandbox Code Playgroud)

xcode breakpoints lldb

1
推荐指数
1
解决办法
1090
查看次数

lldb - 如何杀死陷入无限循环的命令

简单的问题,但我似乎无法在网上找到答案,这真的令人沮丧.

假设我有这个错误的代码我正在尝试调试:

int myBug()
{
    while(1);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我用LLDB调试这个并且类型print myBug()我得不到结果,那么(没有惊喜).然而,这意味着我无法再调试,因为LLDB被卡住而不能continue.有没有办法杀死print myBug()命令?到目前为止,唯一的解决方法是退出并重新启动所有内容 - 远非方便.

我在Xcode 4.6.1中使用LLDB,我尝试了一些按键,如Ctrl + C,Ctrl + T,但似乎没有任何工作:(

xcode lldb

1
推荐指数
1
解决办法
1842
查看次数

如何在LLDB调试器中打印当前时间?

你怎么做呢?我正在使用XCode 4.5.2并尝试为在后台执行的操作创建时间戳.

xcode lldb

1
推荐指数
1
解决办法
1186
查看次数

LLDB:打印变量在每次调用时传递给函数?

OS X有一个名为MobileDevice的无证(私有)框架.它用于从iOS设备获取数据.我正在编写使用它的应用程序,我希望能够在iOS设备的电池上提取充电次数.在MobileDevice中执行此操作的函数称为AMDeviceCopyValue().它需要3个参数:设备的地址(只是一个整数),您要复制的值的域(C字符串),以及您要复制的值的键(另一个C字符串. )

由于没有记录此框架,因此很难找到需要使用的字符串.其中一些已在网上发布,但不是计算充电周期的一个.我在网上发现的另一个程序已经这样做了,iCopyBot:http://www.icopybot.com/blog/check-ipad-iphone-battery-charge-cycle-count-without-jailbreaking.htm

我想在LLDB中启动iCopyBot,然后让LLDB打印出每次调用时iCopyBot传递给AMDeviceCopyValue()的域和关键参数.框架对时间敏感,所以我不能让它停止执行中 - 它只需要打印传递的参数并继续运行.

任何人都可以告诉我我必须做什么吗?我已经设法在LLDB中启动iCopyBot并且每次调用该函数时都设置了一个断点,但命令"frame variable"不会为我打印任何内容(我从Apple网站上获取的LLDB文档)建议它应该打印传入的参数......它对我不起作用.)

c macos cocoa function lldb

1
推荐指数
1
解决办法
4586
查看次数

如何知道导致异常的哪一行?

我是XCode和Objective C的新手.我故意错误地为NSString*分配编号.

NSString* s = @1;
[s uppercaseString];
Run Code Online (Sandbox Code Playgroud)

虽然XCode给了我警告,但这段代码会编译.但在运行时我得到例外.现在我在日志中看到了(对不起图像,由于格式化,我无法正确粘贴文本)

在此输入图像描述

在此日志中,我如何找到确切的错误位置.这个日志如何告诉我要更改哪些代码.

debugging xcode objective-c ios lldb

1
推荐指数
1
解决办法
136
查看次数

如何在python脚本中导入lldb

根据LLDB主页,LLDB可以在python脚本中导入,如下所示:

import lldb
Run Code Online (Sandbox Code Playgroud)

从发布包安装LLDB后(在Lubuntu 15.04上:sudo apt-get install lldb),我收到以下错误:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/lldb/__init__.py", line 52, in <module>
_lldb = swig_import_helper()
File "/usr/lib/python2.7/dist-packages/lldb/__init__.py", line 44, in swig_import_helper
ImportError: No module named _lldb
Run Code Online (Sandbox Code Playgroud)

这是预料之中的!LLDB页面说:

LLDB具有Python脚本功能,并提供自己的名为lldb的Python模块.如果脚本在命令行lldb应用程序内运行,则Python模块将自动可用.但是,如果脚本要由命令行应用程序外部的Python解释器运行,则可以使用PYTHONPATH环境变量让Python解释器找到lldb模块.

通过使用-P标志调用命令行lldb工具可以获得正确的路径:

> export PYTHONPATH=`$llvm/build/Debug+Asserts/bin/lldb -P`
Run Code Online (Sandbox Code Playgroud)

如果您使用了不同的构建目录或进行了发布构建,则可能需要调整上述内容以满足您的需求.

所以那些有信心建立LLDB的人自己得到一个明确的指示,而那些只想使用已发布的软件包的新手会留下一个模糊的解释......

对于从发布包中安装所有内容的最基本情况,是否有人想出了"根据您的需求调整上述内容"的确切含义?lldb -P报告的路径无法解决问题:

user@user-VirtualBox:~$ lldb -P
/usr/lib/x86_64-linux-gnu/python2.7/site-packages
user@user-VirtualBox:~$ ls /usr/lib/x86_64-linux-gnu/python2.7/site-packages
ls: cannot access /usr/lib/x86_64-linux-gnu/python2.7/site-packages: No such file or directory
Run Code Online (Sandbox Code Playgroud)

python linux python-2.7 lldb

1
推荐指数
1
解决办法
4071
查看次数

LLDB重定向劣质标准输出

我正在使用LLDB和最新的OS X工具链(lldb --versionlldb-340.4.110).

我试图调试可执行文件,它产生大量输出到stdout.以前可以通过重定向来抑制输出,例如/dev/null.

但在最新的OS X工具链更新后,它已开始产生以下错误:

(lldb) run >/dev/null
error: invalid JSON
Run Code Online (Sandbox Code Playgroud)

LLDB在该地区有变化吗?就像添加一些语法来指定stdin/stdout/stderr重定向一样.在LLDB文档或邮件列表中找不到任何线索.我也可以认为它是Apple特有的LLDB错误.

PS

我知道我的问题可以通过以下方式暂时解决: sudo lldb -w -n <executable>在单独的终端窗口中,它将告诉LLDB等待具有给定名称的新进程,然后附加到该进程.在这种情况下,我可以在另一个stdin重定向到的终端窗口中运行我的可执行文件/dev/null.

但是我对这个工作流感到非常不舒服,因为stdout重定向只能在我的Linux机器上的GDB中运行.打破习惯总是让人不舒服.

macos lldb

1
推荐指数
1
解决办法
1681
查看次数

标签 统计

lldb ×10

xcode ×5

debugging ×2

ios ×2

macos ×2

objective-c ×2

breakpoints ×1

c ×1

cocoa ×1

function ×1

linux ×1

python ×1

python-2.7 ×1

watch ×1

xcode4.5 ×1