断点在哪里存储

时间:2019-09-03 08:26:42

标签: visual-studio-code

在VSCode中,断点存储在哪里?

当我重新启动VSCode时,那些断点仍然存在,因此VSCode应该有一个存储它们的地方。但是它既不存储在工作空间中,也不存储在.vscode中。

我需要知道它们的存储位置,以便可以方便,高效地备份/还原/添加/修改/删除多个断点。

2 个答案:

答案 0 :(得分:0)

断点存储在哪里?

在Windows上,断点存储在:

%APPDATA%/Code/User/workspaceStorage/(long_hash)/state.vscdb

要找到(long_hash),我添加了一个断点并查找了最近被修改的文件。如果您有Cygwin bash,则在添加或删除断点之后,可以执行以下命令:

  $ cd $APPDATA/Code
  $ find . -mmin -1

state.vscdb文件是SQLite数据库。我可以使用strings(另一个Cygwin命令)从中提取一些数据:

  $ $ strings state.vscdb | grep 'debug.breakpoint'
  debug.breakpoint
  debug.breakpoint
  debug.breakpoint[{"enabled":true,"uri":{"$mid":1,"fsPath":"d:\\wrk\\learn\\vscode\\cpphello\\helloworld.cpp","_sep":1,"external":"file:///d%3A/wrk/learn/vscode/cpphello/helloworld.cpp","path":"/D:/wrk/learn/vscode/cpphello/helloworld.cpp","scheme":"file"},"lineNumber":12},{"enabled":true,"uri":{"$mid":1,"fsPath":"d:\\wrk\\learn\\vscode\\cpphello\\helloworld.cpp","_sep":1,"external":"file:///d%3A/wrk/learn/vscode/cpphello/helloworld.cpp","path":"/D:/wrk/learn/vscode/cpphello/helloworld.cpp","scheme":"file"},"lineNumber":13}]g
  debug.breakpoint[{"enabled":true,"uri":{"$mid":1,"fsPath":"d:\\wrk\\learn\\vscode\\cpphello\\helloworld.cpp","_sep":1,"external":"file:///d%3A/wrk/learn/vscode/cpphello/helloworld.cpp","path":"/D:/wrk/learn/vscode/cpphello/helloworld.cpp","scheme":"file"},"lineNumber":12}]

上面是helloworld.cpp第12行的单个断点。

访问此文件是个好主意吗?

可能不是!

如果您的目标是通过修改此文件自己查询或操作断点,则请注意,这可能会损坏VSCode的内部存储(即使使用适当的SQLite客户端)。

我建议改为使用VSCode扩展API debug.breakpointsdebug.addBreakpoints从VSCode中查询和修改它们。

答案 1 :(得分:0)

在 Mac 上是

~/Library/Application Support/Code/User/workspaceStorage/<hash>