gpt4 book ai didi

c - 使用 vim 在每个函数中添加调试打印代码

转载 作者:太空宇宙 更新时间:2023-11-04 02:55:05 25 4
gpt4 key购买 nike

我有一个巨大的代码文件,想在每个函数中插入打印代码。我知道调试是一种选择,但我是内核的新手,kgdb 不是一个简单而直接的选择,因此我想暂时使用 printf。

我使用 vim 的 multiple buffers 来更快地完成这个任务,但想知道是否有任何方法可以在 .vimrc 中自动执行它这是最终代码的样子

void foo(int a, int b) {
printf("Some print");
// ...
}

int bar() {
printf("Some print");

// ...
}

void bleh(int b) {
printf("Some print");
// ...
}

最佳答案

一个快速的方法是在 shell 中:

find -name '*.c' | xargs vim

在 vim 中,您使用 qq 开始记录一个宏,利用全局命令

:g/\v\s*(void|int) \w+\([^)]*\)/normal A^Mprint("some print");

然后你使用精彩的argdo命令:

:argdo normal @q

要保存您使用的更改:

:argdo normal :w^M

这将添加 print("someprint")定位到的 c 源代码文件中的每个函数。如果要使用 print 中的函数名或文件名语句,您可以使用带有一些复杂替换的全局命令,例如(未测试):

:global /\v\s*(void|int) \w+([^)]*)/s/\v(\w+)\([^]]*\)\s* {/\=submatch(0) . '\r\t\tprint(in file.function:'. expand('%') .'.'. submatch(1) . ');'

请记住 ^M 和 ^[ 不是文字字符串,它们是用 <C-v><CR> 插入的和 <C-v><Esc>

希望对你有帮助

关于c - 使用 vim 在每个函数中添加调试打印代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18636310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com