debug.go 814 B

1234567891011121314151617181920212223242526272829303132333435
  1. //go:build go1.19
  2. package box
  3. import (
  4. "runtime/debug"
  5. "github.com/sagernet/sing-box/common/dialer/conntrack"
  6. "github.com/sagernet/sing-box/option"
  7. )
  8. func applyDebugOptions(options option.DebugOptions) {
  9. if options.GCPercent != nil {
  10. debug.SetGCPercent(*options.GCPercent)
  11. }
  12. if options.MaxStack != nil {
  13. debug.SetMaxStack(*options.MaxStack)
  14. }
  15. if options.MaxThreads != nil {
  16. debug.SetMaxThreads(*options.MaxThreads)
  17. }
  18. if options.PanicOnFault != nil {
  19. debug.SetPanicOnFault(*options.PanicOnFault)
  20. }
  21. if options.TraceBack != "" {
  22. debug.SetTraceback(options.TraceBack)
  23. }
  24. if options.MemoryLimit != 0 {
  25. debug.SetMemoryLimit(int64(options.MemoryLimit))
  26. conntrack.MemoryLimit = int64(options.MemoryLimit)
  27. }
  28. if options.OOMKiller != nil {
  29. conntrack.KillerEnabled = *options.OOMKiller
  30. }
  31. }