lldb.nvim, 简单易用,调试器集成与焦点

分享于 

5分钟阅读

GitHub

  繁體 雙語
A major refactor of https://github.com/gilligan/vim-lldb plugin using Neovim's advanced features to provide a smoother, cleaner interface.
  • 源代码名称:lldb.nvim
  • 源代码网址:http://www.github.com/dbgx/lldb.nvim
  • lldb.nvim源代码文档
  • lldb.nvim源代码下载
  • Git URL:
    git://www.github.com/dbgx/lldb.nvim.git
    Git Clone代码到本地:
    git clone http://www.github.com/dbgx/lldb.nvim
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/dbgx/lldb.nvim
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    LLDB Neovim前端

    这里插件为 Neovim (。演示 gif ) 提供了LLDB调试器集成,其中包括:

    • 调试器状态的详细视图
    • 基于事件的非阻塞用户界面
    • 断点的持久性和跨出口的更多( 会话保存)
    • 从回溯或者线程 Windows 跳转到代码
    • 模态方法:在模式切换期间定义模式和重播命令
    • LLDB命令的选项卡完成

    这个插件从 fork的开始,它是从 http://llvm.org/svn/llvm-project/lldb/trunk/utils/vim-lldb/分支 forked

    这个插件利用 Neovim API的工作来产生一个单独的进程,并使用RPC调用与Neovim进程进行通信。

    先决条件

    安装

    使用一个插件管理器,如 vim插件插件:

    
     Plug 'dbgx/lldb.nvim'
    
    
    
    

    或者,克隆这里 repo,并将以下行添加到你的nvimrc中:

    
     set rtp+=/path/to/lldb.nvim
    
    
    
    

    执行:

    
     :UpdateRemotePlugins
    
    
    
    

    重新启动 Neovim。

    目标

    插件正在开发中,牢记 3个广泛的目标:

    • 轻松使用 : 几乎没有 命令行 调试器知识的用户应该使用这个插件感到舒适。
    • 完整的完整: LLDB经验丰富的用户不应该受到限制。
    • 用户可以定制: 用户应该能够将这个插件弯曲到他们的需要。

    正在启动

    下面是演示基础知识的简短录像: Youtube

    还要从vim文档( :h lldb-start ) 中查看入门部分。 我建议使用 viewdoc插件插件来轻松导航文档。

    常见问题解答

    :我使用 Mac ! [... ]

    你有 2个选择:

    • 使用系统 python 作为Neovim的默认python2插件提供程序。 选择这意味着你可以在Neovim中使用LLDB自带的。 阅读这个了不起的博客帖子,由 @Quiark 提供更多详细信息。
    • 我不喜欢 python --的系统版本,它是 2.7. X,,但我想要 2.7. Y 具有这个特性。 不需要担心( 我希望),只需安装LLDB和 python 支持的rtc版本。 你也需要它你还可以看到 #15#18,这是关于故障排除的所有细节。
    • 这个插件不能正常工作 !
    • 尝试 :UpdateRemotePlugins,然后重新启动 Neovim。
    • 尝试运行测试脚本 test/run.sh,看看它是如何运行的。 如果在 import lldb 中遇到错误,请参阅 #6 ( 评论)

    如果问题仍然存在,请提交 Bug 报告( 另请参阅 :help lldb-bugs )。

    所有语言都支持除c/以外的其他语言?
    • Objective-C
    • Swift ( 也见 Swift lldb )
    • Rust ( 生成:rustc -g <file> )
    • 转到( 生成: go build -gcflag '-N -l' <file> 有关这里结论,请参见 :
    • 等等?
    程序计数器指向源文件中的错误行。

    尝试clang而不是 gcc ( 手指交叉)。 请参见 clang比较插件:

    Clang在解析代码时并不隐式地简化代码,像。 这样做会导致源分析工具的许多问题。

    :如何附加到运行进程

    为了能够附加,"attacher"需要有特殊权限。 最简单的方法是将调试服务器作为'sudo'运行并连接到它。 请参阅下面的问题。

    远程调试不工作 !

    我无法获得 gdbserverlldb-gdbserver 或者 lldb-server gdbserver 在 python API中正常工作。 但以下工作是:

    
    # use sudo if you want to attach to a running process
    
    
    $ lldb-server platform --listen localhost:2345
    
    
    
    # in older versions of lldb, use this instead
    
    
    $ lldb-platform --listen localhost:2345
    
    
    
    

    上命令将在平台模式下启动服务器,并侦听端口 2345上的连接。 现在,从客户机( 插件) 运行:

    
    (lldb) platform select remote-linux
    
    
    (lldb) platform connect connect://localhost:2345
    
    
    (lldb) process attach --name cat
    
    
    
    

    有关这里的更多信息,请参见远程调试插件。


    INT  USE  整合  DEB  debug  焦点  
    相关文章