【问题标题】:Does lldb support cd and pwd like gdblldb 是否像 gdb 一样支持 cd 和 pwd
【发布时间】:2017-04-11 03:17:22
【问题描述】:

在 gdb 中,我们可以使用 'pwd' 显示当前文件夹,并使用 'cd' 更改当前工作文件夹。 lldb 有相同的命令吗?

【问题讨论】:

    标签: gdb lldb


    【解决方案1】:

    在 lldb 中,调试器可以创建到 platforms 的连接,它将用于上传文件、运行程序等。默认情况下,lldb 连接到“主机”平台,即您的本地系统。您可以使用platform shell 在当前平台上运行命令,因此要获取 cwd,只需:

    (lldb) platform shell pwd
    

    您不能使用platform shell 更改 cwd,因为这是一个子 shell,所以它的效果不会持续到子 shell 的执行之后。 cwd 是平台的设置,因此您可以更改它:

    (lldb) platform settings -w <NEW_PATH>
    

    【讨论】:

    • Inghram,lldb 是否有任何快捷命令?我发现 LLDB 中的相应 cmd 似乎比 GDB 更冗长:lldb.llvm.org/lldb-gdb.html。我觉得很难记住它们。直接使用命令是最佳实践吗?有人定义了要使用的简化命令吗?
    • lldb 有一个别名机制(有关更多详细信息,请参阅help command alias),允许快速访问常用命令。 lldb 有一些预制的别名(例如snbt 等)但是我们不想用内置的那些方便的短命令词的命名空间过度填充,因为那样会让人们根据他们最常用的东西来定制 lldb 变得不那么方便了。所以platform shell 没有预先构建的别名。
    • 这个设计点对我来说很有意义。我们是否为 lldb 定义了任何填充别名?如果人们已经做到了,我想获得一些便利。谢谢。
    • 这是几年前在 WWDC 上用作命令别名的示例,shell 是使用的别名。默认别名包括单字母别名sstep,并且在lldb 命令解析器中完全匹配,因此使用shell 不会使s 产生歧义。并且没有其他“sh”命令。所以没有理由不使用明显的名称。
    • 但是如果你是远程调试,怎么打印工作目录呢?例如(lldb) file a.out 应该将本地文件a.out 加载到远程cwd 中。所以我需要知道本地cwd是什么才能指定a.out的相对路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多