首页 > 代码库 > Syncthing源码解析 - 在Gogland中对Syncthing的各个模块进行调试?

Syncthing源码解析 - 在Gogland中对Syncthing的各个模块进行调试?

Syncthing的模块很多,各自负责不同的功能,如何能够对各个模块进行调试?Syncthing开发者早就想到这个问题了,允许开发者对任意模块进行单独调试,也允许同时对所有模块调试,调试方式是打印各个模块的操作以及事件的log信息到控制台和log文件中!

调试方法:

在Windows操作系统中,打开控制台窗口,进入Syncthing的程序目录,随后依次运行下面两个命令:

set STTRACE=all
syncthing

set STTRACE=all,这个命令设置环境变量,让Syncthing打印所有模块的log信息!!这样做之后输出信息会很多很多,对于全面了解Syncthing确实是不错的选择,但是如果仅仅关注某个模块,那么不应该这样设置,应该设置为具体模块名称了,这些设置参数如下:

     参数说明:模块名称参数 (模块描述)

  • beacon (Multicast and broadcast discovery)
  • config (Configuration loading and saving)
  • connections (Connection handling)
  • db (The database layer)
  • dialer (Dialing connections)
  • discover (Remote device discovery)
  • events (Event generation and logging)
  • http (REST API)
  • main (Main package)
  • model (The root hub)
  • nat (NAT discovery and port mapping)
  • pmp (NAT-PMP discovery and port mapping)
  • protocol (The BEP protocol)
  • scanner (File change detection and hashing)
  • sha256 (SHA256 hashing package)
  • stats (Persistent device and folder statistics)
  • sync (Mutexes)
  • upgrade (Binary upgrades)
  • upnp (UPnP discovery and port mapping)
  • versioner (File versioning)
  • all (all of the above)

上面是在Windows的DOS窗口中操作,是否可以在Gogland中完成同样操作呢?一定可以的!!

1,打开Gogland的"Terminal"窗口。下面截图可以通过两种方式打开:A,通过上面菜单;B,通过下面工具栏按钮。截图中分别标注出来了。

技术分享

2,进入Syncthing可执行文件目录,依次执行上面两个命令,从而进入Syncthing的调试模式!下面截图是进入Syncthing调试模式后输出的各种log信息截图!

技术分享

3,终止对当前Syncthing的调试。点击终端窗口左上角的小红X,就会立即中断当前运行的进程!!

技术分享

参考:https://docs.syncthing.net/dev/debugging.html

Syncthing源码解析 - 在Gogland中对Syncthing的各个模块进行调试?