标签: lldb

如何在LLDB中显示带小数的浮点值

在gdb中,我可以使用print命令显示浮点或双变量,并且我得到一个带有几个小数位的值.LLDB中的等效命令expr似乎对该值进行舍入/截断,并仅显示整数部分.LLDB的格式字符串文档不仅有点迟钝.如何显示双精度或单精度浮点局部变量,包括小数部分?

如果foo = 3.1415926,那么

expr foo

显示器

foo = 3

不是很有帮助.

xcode lldb

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

lldb objc_msg在OS X上发送跟踪

我正在追踪一个OS X应用程序,我希望可以在iOS上找到这样的方式:

lldb Xcode:错误:'printf'不是有效命令

有办法这样做吗?我试过了

expr -- (void)printf("[%s, %s]\n",(char *) object_getClassName(*(long*)($esp+4)), (char *) *(long *)($esp+8) )
Run Code Online (Sandbox Code Playgroud)

我认为OS X使用的是64位寄存器.所以这个命令不起作用(实际上,它不起作用).我该怎么写这个命令?或者有一个简单的方法来做同样的事情?只是跟踪调用的类和方法

debugging macos lldb

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

调试器输出中的未知__lldb_autogen_pair类型

我正在从服务器加载JSON,发现非常奇怪的类型名称,并且不知道如何处理它 在此输入图像描述

什么struct _lldb_autogen_pair意思,为什么它在那里,当JSON是:

原版的:

{
"2011.10.06": [
  {
    "place":"home",
    "role":0,
    "title":"abc"
  }
],
}
Run Code Online (Sandbox Code Playgroud)

更新 我有AFHTTPRequestOperationManager的单例子类,所以我做

client = [[VZWebClient alloc] initWithBaseURL:[NSURL URLWithString:kVZWebClientHostName]];
client.responseSerializer = [AFJSONResponseSerializer serializer];
Run Code Online (Sandbox Code Playgroud)

在NSLOG,没有任何惊喜,一切都好

objective-c lldb afnetworking

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

警告:在某些路径上创建 LLDB 目标时出错

我正在 Xcode 6.1 和 iPhone (iOS 8.1) 模拟器上运行一个应用程序。在运行时,我在控制台窗口登录以下:

Warning: Error creating LLDB target at path '/Users/macbook/Library/Developer/Xcode/DerivedData/..Project.app'- 
using an empty LLDB target which can cause slow memory reads from remote devices.
Run Code Online (Sandbox Code Playgroud)

如果我在 Xcode 5.x 和 iPhone (iOS 7.x) 模拟器中运行应用程序,那么控制台上就没有这样的日志。可能是什么原因?如果我将应用程序上传到应用程序商店会不会有问题。

console warnings lldb ios8.1 xcode6.1

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

为什么不能'自我'认出来?

我正在开发iOS应用程序.

我想在一个页面上使用recursiveDescription,它在lldb上有UITableView.我移到页面上方,然后我通过暂停按钮停止应用程序.我收到以下错误.

(lldb) po [self.workview recursiveDescription]
error: use of undeclared identifier 'self'
error: 1 errors parsing expression
(lldb) po [self.view recursiveDescription]
error: use of undeclared identifier 'self'
error: 1 errors parsing expression
Run Code Online (Sandbox Code Playgroud)

self.workview是UITableView的实例.为什么不能'自我'认出来?

recursion ios lldb

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

如何在 lldb 中使用枚举

我收到此错误,是否需要使用特定语法才能在LLDB 中使用枚举

(lldb) expr NSString *$text = [[NSString alloc] initWithData:$data encoding:NSUTF8StringEncoding]
error: use of undeclared identifier 'NSUTF8StringEncoding'
error: 1 errors parsing expression
Run Code Online (Sandbox Code Playgroud)

注意:数据在我的上下文中有效且类型正确

使用实际而不是我得到的枚举时进行编辑

expr NSString *$text = [[NSString alloc] initWithData:$data encoding:(NSStringEncoding)4]
error: no known method '-initWithData:encoding:'; cast the message send to the method's return type
error: 1 errors parsing expression
Run Code Online (Sandbox Code Playgroud)

我曾尝试使用和不使用强制转换 (NSStringEncoding)

使用值的解决方案

expr NSString *$text = (NSString *)[[NSString alloc] initWithData:$data encoding:4]
Run Code Online (Sandbox Code Playgroud)

由于我使用 -initWithData:encoding:(使用 NSUInteger 类型进行编码)lldb 无法推断整个方法的返回类型,因此我也必须转换返回类型。

objective-c ios lldb

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

如何更改默认的LLDB设置

我有时需要使用LLDB打印长字符串。默认的LLDB设置会修剪打印的字符串,我必须输入以下内容:

set set target.max-string-summary-length 10000
Run Code Online (Sandbox Code Playgroud)

下次运行时,此设置不会保留。有没有一种设置方法,以便所有后续的LLDB调试会话都将遵循此设置?

xcode lldb

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

Xcode调试器(lldb)从内存地址获取对象描述

鲜为人知的事实:现在,可以在Xcode中将其暂停在调试器中时,对通知中心进行自省,以了解注册了哪些对象以接收哪些通知:

(lldb) po NotificationCenter.default

<NSNotificationCenter:0x6040000d40b0>
Name, Object, Observer, Options
com.apple.accessibility.reduce.motion.status, 0x10b126190, 0x7fc795700140, 1001
com.apple.accessibility.asst.scanner.status, 0x10b126190, 0x7fc795700140, 1001
// ... etc. ...
Run Code Online (Sandbox Code Playgroud)

很不错,但我如何从存储器地址获得0x7fc795700140学习什么对象

编辑我在这里留下这个问题,但是我认为正确的答案是在LLDB(Swift)上显示的那种:将原始地址转换为可用类型

xcode nsnotificationcenter lldb

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

将换行符添加到 Xcode 输出

假设您有一个自定义对象,它具有如下自定义描述:

class CustomObject {

    var customDescription: String {
        return "Title: Hello, \n Subtitle: World"
    }
}
Run Code Online (Sandbox Code Playgroud)

\n使用poLLDB 控制台中的命令打印时,有没有办法让换行符在控制台中工作?

现在 LLDB 将 打印\n为文本的一部分并且不处理它:

po object.customDescription
> "Title: Hello, \n Subtitle: World"
Run Code Online (Sandbox Code Playgroud)

想要的结果是:

po object.customDescription
> Title: Hello
  Subtitle: World
Run Code Online (Sandbox Code Playgroud)

你有什么解决办法吗?

xcode lldb swift

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

Qt Creator无法在Mac上启动调试

最近(我怀疑有一些系统/自制程序更新),Qt的调试器停止运行。它永远挂在Setting up inferior...

内部日志:

dStart parameters: 'QGIS' mode: 1
dABI: x86-darwin-generic-mach_o-64bit
dLanguages: c++ 
dExecutable: ./QGIS 
dDirectory: ./build/output/bin/QGIS.app/Contents/MacOS
dDebugger: /Library/Developer/CommandLineTools/usr/bin/lldb
dProject: ./QGIS
dAdditional Search Directories:
dSysroot: 
dDebug Source Location: 
dDebugger settings:
dAdditionalArguments:   (default: )
dAdjustBreakpointLocations: true  (default: true)
dAllPluginBreakpoints: true  (default: true)
dAlwaysAdjustColumnWidths: true  (default: true)
dAutoDerefPointers: true  (default: true)
dAutoEnrichParameters: true  (default: true)
dAutoQuit: false  (default: false)
dBreakEvent:   (default: )
dBreakOnAbort: false  (default: false)
dBreakOnCatch: false  (default: false)
dBreakOnCrtDbgReport: false  (default: false)
dBreakOnFatal: false  (default: false)
dBreakOnThrow: false  (default: …
Run Code Online (Sandbox Code Playgroud)

c++ macos qt qt-creator lldb

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