Bee Watch

Build Status

Bee Watch 是一款 Go 语言的交互式调试工具。

特性

  • 使用 CriticalInfoTrace 三个级别来改变调试器的行为。
  • Display() 打印变量值或者使用 Printf() 自定义输出格式。
  • 使用用户友好界面的 WebSocket 模式或能够轻松控制的 命令行 模式。
  • 调用 AddWatchVars() 来监视变量并在程序调用 Break() 时显示它们的信息。
  • 通过 beewatch.json 配置文件来实现自定义配置。

安装

Bee Watch 是一个可以使用 “go get” 安装的 Go 项目,您可以执行以下命令完成自动安装:

  1. go get github.com/beego/beewatch

注意 该项目目前只能通过源码安装。

快速入门

用法

  1. package main
  2. import (
  3. "time"
  4. "github.com/beego/beewatch"
  5. )
  6. func main() {
  7. // 默认级别为:Trace,
  8. // 或使用 `beewatch.Start(beewatch.Info())` 设置级别。
  9. beewatch.Start()
  10. // 声明一些变量。
  11. appName := "Bee Watch"
  12. boolean := true
  13. number := 3862
  14. floatNum := 3.1415926
  15. test := "fail to watch"
  16. // 增加监视变量,参数必须为偶数。
  17. // 需要注意的是您必须传递被监视变量的地址。
  18. // 该功能当前只支持基本类型。
  19. // 在下面的例子中,'test' 不会被监视。
  20. beewatch.AddWatchVars("test", test, "App Name", &appName,
  21. "bool", &boolean, "number", &number, "float", &floatNum)
  22. // 打印信息。
  23. beewatch.Info().Display("App Name", appName).Break().
  24. Printf("boolean value is %v; number is %d", boolean, number)
  25. beewatch.Critical().Break().Display("float", floatNum)
  26. // 修改一些值。
  27. appName = "Bee Watch2"
  28. number = 250
  29. // 您将在这里看到一些有趣的东西。
  30. beewatch.Trace().Break()
  31. // 多线程测试。
  32. for i := 0; i < 3; i++ {
  33. go multipletest(i)
  34. }
  35. beewatch.Trace().Printf("Wait 3 seconds...")
  36. select {
  37. case <-time.After(3 * time.Second):
  38. beewatch.Trace().Printf("Done debug")
  39. }
  40. // 关闭调试器,当您调试 Web 服务器时,可忽略该操作。
  41. beewatch.Close()
  42. }
  43. func multipletest(num int) {
  44. beewatch.Critical().Break().Display("num", num)
  45. }

连接

当您使用 WebSocket 模式时,Bee Watch 会自动监听 http://localhost:23456,您可以用过配置 beewatch.json 来修改调试器行为(请从 Bee Watch 的源码目录拷贝默认配置)。

您的浏览器必须支持 WebSocket,在 Mac 和 Windows 上的 Chrome、Safari 和 Firefox 均以通过测试。

Bee Watch demo

示例和 API 文档

Go Walker