如何在GDB的文本编辑器中打开当前行的当前文件?

时间:2017-04-22 09:15:16

标签: gdb

始终执行ll -不方便,并且错过了语法突出显示和跳转到定义等功能。

如何在当前行上运行一个打开编辑器(可能是像Vim这样的CLI编辑器)的外部命令?

我已经知道在https://vi.stackexchange.com/questions/2046/how-can-i-integrate-gdb-with-vim或Eclipse中提到的编辑器插件集成,但是从GDB打开编辑器的优点是它应该适用于任何编辑器,并且更轻量级,因此不太可能破坏。成本更差,例如,不能从编辑器设置断点,但我很好。

2 个答案:

答案 0 :(得分:5)

edit命令,没有参数,可以做你想要的。

答案 1 :(得分:3)

自动居中行的方法

这个Python GDB脚本与edit类似,但它也将Vim集中在当前行上:

class Vim(gdb.Command):
    """
Open current file in vim at a the current line.
"""
    def __init__(self):
        super().__init__('vim', gdb.COMMAND_FILES)
    def invoke(self, argument, from_tty):
        sal = gdb.selected_frame().find_sal()
        call(['vim', sal.symtab.fullname(), '+{}'.format(sal.line), '+normal! zz'])
Vim()

Vim CLI参数解释如下:How can I open vim with a particular line number at the top?

sal GDB Python对象记录在:https://sourceware.org/gdb/onlinedocs/gdb/Symbol-Tables-In-Python.html#Symbol-Tables-In-Python

很遗憾我无法正确使用vim --remote,因为我无法通过当前行:How to send commands to gvim when using --remote?