如何通过初始化命令在Delve中设置断点?
在Delve中实现类似GDB
--init-command的自动断点设置 Delve提供了两种直接在启动时执行初始化命令(比如设置断点)的方式,完全能满足你的需求:
1. 直接用--eval(或短选项-e)参数传递命令
这是最便捷的方式,无需额外文件,把断点命令直接跟在启动参数后即可:
# 设置单个断点 dlv debug --eval "break pkg/db/connection.go:dbConnection" ./你的项目路径 # 多个断点用分号分隔 dlv debug -e "break pkg/db/connection.go:dbConnection; break main.main" ./你的项目路径
2. 用--init参数指定初始化命令文件
如果有批量初始化命令要执行,先写一个文本文件(比如dlv-init-cmds.txt),每行放一条Delve命令:
break pkg/db/connection.go:dbConnection break internal/utils/helper.go:parseConfig continue
启动时指定这个文件即可自动执行所有命令:
dlv debug --init dlv-init-cmds.txt ./你的项目路径
结合fzf的实操用法
你提到用fzf选择目标位置,直接把fzf的输出传给--eval即可,注意处理带空格的路径或函数名:
# 用fzf选择断点目标,输出格式示例:"pkg/db/connection.go:dbConnection" TARGET=$(fzf --prompt="选择断点位置: ") # 用单引号包裹目标,避免空格导致命令解析错误 dlv debug --eval "break '$TARGET'" ./你的项目路径
内容的提问来源于stack exchange,提问作者mortymacs
相关产品推荐
相关产品推荐

