在gdb中,我可以使用print命令显示浮点或双变量,并且我得到一个带有几个小数位的值.LLDB中的等效命令expr似乎对该值进行舍入/截断,并仅显示整数部分.LLDB的格式字符串文档不仅有点迟钝.如何显示双精度或单精度浮点局部变量,包括小数部分?
如果foo = 3.1415926,那么
expr foo
显示器
foo = 3
不是很有帮助.
我正在追踪一个OS X应用程序,我希望可以在iOS上找到这样的方式:
有办法这样做吗?我试过了
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位寄存器.所以这个命令不起作用(实际上,它不起作用).我该怎么写这个命令?或者有一个简单的方法来做同样的事情?只是跟踪调用的类和方法
我正在从服务器加载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,没有任何惊喜,一切都好
我正在 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) 模拟器中运行应用程序,那么控制台上就没有这样的日志。可能是什么原因?如果我将应用程序上传到应用程序商店会不会有问题。
我正在开发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的实例.为什么不能'自我'认出来?
我收到此错误,是否需要使用特定语法才能在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 无法推断整个方法的返回类型,因此我也必须转换返回类型。
我有时需要使用LLDB打印长字符串。默认的LLDB设置会修剪打印的字符串,我必须输入以下内容:
set set target.max-string-summary-length 10000
Run Code Online (Sandbox Code Playgroud)
下次运行时,此设置不会保留。有没有一种设置方法,以便所有后续的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)上显示的那种:将原始地址转换为可用类型
假设您有一个自定义对象,它具有如下自定义描述:
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)
你有什么解决办法吗?
最近(我怀疑有一些系统/自制程序更新),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)