• 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

  • 相关阅读:
    设计模式:singleton模式
    设计模式:factory method模式
    设计模式:template method模式
    设计模式:Adapter模式
    设计模式:Iterator模式
    MySQL数据库---数据库备份、视图、触发器、事物、存储过程、函数和索引
    MySQL数据库---记录相关操作
    C语言经典面试题 与 C语言面试宝典
    [置顶] C语言中 || 和 &&
    linux 创建连接命令 ln -s 软连接
  • 原文地址:https://www.cnblogs.com/sunylat/p/6390356.html
Copyright © 2020-2023  润新知