标签: lldb

如何附加LLDB中的子进程

我的进程启动子进程,我也想在OS X上使用LLDB调试这些进程.我在调试器中找不到任何自动附加选项.怎么做?

macos process lldb

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

iOS模拟器应用程序的终端命令行调试?

是否可以在Mac OS X下使用终端命令行中的GDB或LLDB来调试在iOS模拟器上运行的应用程序?(例如,不是来自Xcode的GUI或控制台,而是使用外部命令行或进程).如果是这样,怎么样?

debugging macos xcode ios lldb

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

在Mac OS X 10.8.4上的iOS模拟器中随机(lldb)崩溃

一段时间以来,我一直在努力解决一个奇怪的问题.在最初关闭iOS模拟器的情况下运行我的应用程序时,它会正确启动.但是,如果我再次运行它而不关闭模拟器,它会崩溃并在错误日志中打印(lldb).如果我再次运行它(不关闭模拟器)它会正确启动.如果我再次这样做,它会崩溃.所以似乎每隔一段时间.它在使用iOS设备时有效,而且我有一个完全相同的项目的大学,在iOS模拟器中没有遇到这个问题.我尝试过的是清理,重置内容和设置,手动删除应用程序,重新启动计算机并重新安装Xcode.

xcode ios lldb ios-simulator

16
推荐指数
2
解决办法
5412
查看次数

如果类中的实例变量的值发生变化,如何触发断点?

假设我有一个变量,self.position每当它改变它的值时,我如何让Xcode中断(许多方法可以改变它).

xcode objective-c ios lldb

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

将lldb输出重定向到文件

我在Xcode中使用lldb,我的一个变量包含大量的JSON数据.使用po myVar对分析这些数据没有多大帮助,因为它将在微小的Xcode调试控制台中输出.

有没有办法将lldb输出重定向到文件?

我在这里看到这样的功能似乎在gdb上可用:

(gdb) set logging on
(gdb) set logging file /tmp/mem.txt
(gdb) x/512bx 0xbffff3c0
(gdb) set logging off
Run Code Online (Sandbox Code Playgroud)

并在lldb中"翻译"为:

(lldb) memory read --outfile /tmp/mem.txt --count 512 0xbffff3c0
(lldb) me r -o/tmp/mem.txt -c512 0xbffff3c0
(lldb) x/512bx -o/tmp/mem.txt 0xbffff3c0
Run Code Online (Sandbox Code Playgroud)

但是,该memory read命令对我的情况没有帮助,并且--outfile似乎没有可用于该print命令.

io-redirection lldb

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

stringWithFormat在LLDB中不起作用

为什么这不起作用?

(lldb) po [NSString stringWithFormat:@"%f", 1.0]
error: too many arguments to method call, expected 1, have 2
error: 1 errors parsing expression
Run Code Online (Sandbox Code Playgroud)

但这样做:

(lldb) p (void)printf("%f", 1.0)
1.000000
Run Code Online (Sandbox Code Playgroud)

LLDB中不支持Objective-C变量参数语法吗?

cocoa objective-c ios lldb

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

如何用lldb跳过几行代码?

有没有办法在使用lldb进行调试时跳过代码行而无需重新编译?

xcode lldb

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

如何让NDK调试在Android Studio中运行?

Android Studio不会在C++代码中的断点处停止,这是我到目前为止所做的:

  1. 在AndroidManifest.xml中:

    android:debuggable="true"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在build.gradle中(这可能是问题):

    sourceSets.main {
      jniLibs.srcDir 'src/main/libs'
      jni.srcDirs = []
    }
    
    task ndkBuild(type: Exec) {
      commandLine android.ndkDirectory.getAbsolutePath() + '\\' + 'ndk-build.cmd', '-C', file('src/main/jni').absolutePath, 'NDK_DEBUG=1'
    }
    
    tasks.withType(JavaCompile) {
      compileTask -> compileTask.dependsOn ndkBuild
    }
    
    Run Code Online (Sandbox Code Playgroud)
    1. 在Android Studio上将应用程序配置为本机应用程序

    2. 在C++代码中放置断点

    3. 调试应用程序

这似乎有效,因为它说:"现在启动本机调试会话"而且我可以使用停止按钮暂停应用程序,但没有断点工作.

谢谢您的帮助

c++ android-ndk lldb android-studio

16
推荐指数
3
解决办法
3万
查看次数

错误:在NSAttributedString扩展名中使用未声明的类型'$ __ lldb_context'

给出以下Swift代码,保存在bug.swift中,并使用Xcode 8.2.1或Xcode 8.3 beta 2:

import Foundation

protocol MyProtocol {
    func foo() -> String
}

extension MyProtocol {
    func foo() -> String {
        return "\(self)"
    }
}

extension String: MyProtocol {}
extension NSAttributedString: MyProtocol {}

let normal = "normal".foo()
let attributed = NSAttributedString(string: "attributed", attributes: [:]).foo()
Run Code Online (Sandbox Code Playgroud)

运行以下命令:

swiftc -g bug.swift
lldb bug
Run Code Online (Sandbox Code Playgroud)

LLDB启动.现在,运行这些命令,并观察输出.我通过的地方9,传递bug.swift包含的内容return "\(self)":

(lldb) target create "bug"
Current executable set to 'bug' (x86_64).
(lldb) b 9
Breakpoint 1: where = bug`(extension in bug):bug.MyProtocol.foo …
Run Code Online (Sandbox Code Playgroud)

lldb swift

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

观察内存地址上的点

随着从gdb到lldb的新变化,我找不到如何在某些内存地址上设置监视点的方法.

在gdb中我使用了这个

watch -location *0x123456
Run Code Online (Sandbox Code Playgroud)

在lldb中做同样的事情

w s e *0x123456
Run Code Online (Sandbox Code Playgroud)

不适合我.那么我可以用什么在lldb中运行相同的命令呢?

debugging xcode gdb lldb

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