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的各个模块进行调试?的更多相关文章

  1. Spring5源码解析-Spring框架中的单例和原型bean

    Spring5源码解析-Spring框架中的单例和原型bean 最近一直有问我单例和原型bean的一些原理性问题,这里就开一篇来说说的 通过Spring中的依赖注入极大方便了我们的开发.在xml通过& ...

  2. Syncthing源码解析

    Gogland编译Syncthing 源码目录说明 Syncthing启动过程分析 在Gogland中对Syncthing的各个模块进行调试 第三方库

  3. Syncthing源码解析 - 源码目录说明!

    Syncthing是一个免费开源的p2p软件,Go语言编写的! 官网:https://syncthing.net/ 源码:https://github.com/syncthing/syncthing/ ...

  4. 【源码解析】Sharding-Jdbc中的算法

    Sharding-jdbc中的很多地方涉及到算法,比如主从配置这块.分库分表这块.本文主要从源码角度介绍下,目前主要包含哪些算法,以及这些算法的内容. 一.读写分离(主从配置) 这块的代码主要在cor ...

  5. Syncthing源码解析 - 启动过程

    我相信很多朋友会认为启动就是双击一下Syncthing程序图标,随后就启动完毕了!如果这样认为,对,也不对!对,是因为的确是这样操作,启动了Syncthing:不对是因为在调试Syncthing启动过 ...

  6. html 网页源码解析:bs4中BeautifulSoup

    from bs4 import BeautifulSoup result=requests.request("get","http://www.baidu.com&quo ...

  7. Redis源码解析:13Redis中的事件驱动机制

    Redis中,处理网络IO时,采用的是事件驱动机制.但它没有使用libevent或者libev这样的库,而是自己实现了一个非常简单明了的事件驱动库ae_event,主要代码仅仅400行左右. 没有选择 ...

  8. ReactiveCocoa源码解析(四) Signal中的静态属性静态方法以及面向协议扩展

    上篇博客我们聊了Signal的几种状态.Signal与Observer的关联方式以及Signal是如何向关联的Observer发送事件的.本篇博客继续上篇博客的内容,来聊一下Signal类中静态的ne ...

  9. ReactiveSwift源码解析(四) Signal中的静态属性静态方法以及面向协议扩展

    上篇博客我们聊了Signal的几种状态.Signal与Observer的关联方式以及Signal是如何向关联的Observer发送事件的.本篇博客继续上篇博客的内容,来聊一下Signal类中静态的ne ...

随机推荐

  1. python的多线程编程之锁

    1. 背景概述 在上篇文章中,主要讲述了python中的socket编程的一些基本方面,但是缺少关于锁的相关概念,从而在这篇文章中进行补充. 由于在python中,存在了GIL,也就是全局解释器锁,从 ...

  2. FireDAC 之FDMetaInfoQuery

    FDMetaInfoQuery http://docs.embarcadero.com/products/rad_studio/firedac/frames.html http://docwiki.e ...

  3. zookeeper 分布式计数器

    分布式计数器的思路是:指定一个Zookeeper数据节点作为计数器,多个应用实例在分布式锁的控制下,通过更新该数据节点的内容来实现计数功能. Curator中封装了实现,例如 DistributedA ...

  4. 值类型 struct

    由于值类型存在装箱和拆箱的过程,所有导致在修改值类型对象内部数据时,有可能会出现一些与预想不同的结果. 比如 Point p = , ); Console.WriteLine(p); p.Change ...

  5. python常用option

    [python常用option] 1. -c cmd : program passed in as string (terminates option list) 解析字符串命令,不读cmd之后的op ...

  6. 对一个 复杂的json结果进行取值的例子

    1 JSON结果集 [ { "J_LP_OPERATE_MAIN": { "ID": "1900036295", "FILL_MA ...

  7. PCL 3维点云的模板匹配

    Doc 来自PCL官方文档 http://www.pointclouds.org/documentation/tutorials/template_alignment.php#template-ali ...

  8. 微软AntiXSS防止xss攻击类库

    AntiXSS,由微软推出的用于防止XSS攻击的一个类库,可实现输入白名单机制和输出转义. AntiXSS最新版的下载地址:http://wpl.codeplex.com 下载安装之后,安装目录下有以 ...

  9. php识别二维码

    php-zbarcode 是 PHP 读取条形码的扩展模块,目前仅支持 php5.x

  10. 常见的http response

    200            //OK                                 400            //bad request 401           //Una ...