Skip to content

Commit f17060e

Browse files
committed
intra: force attempt elevating gotraceback level
1 parent 99632f0 commit f17060e

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

intra/tun2socks.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,20 +114,26 @@ func LogLevel(gologLevel, consolelogLevel int32) {
114114
log.SetConsoleLevel(clvl)
115115
dbg := dlvl <= log.DEBUG || clvl <= log.DEBUG
116116
settings.Debug = dbg
117+
// turn off runtime's internal "secure mode" to enable tracebacks
117118
prevsm := core.SecureMode(false /*off*/)
118119
// traceback is always set to "crash" for c-shared / c-archive buildmodes
119120
// github.com/golang/go/blob/fed3b0a298/src/runtime/runtime1.go#L586
120121
// gomobile builds a c-shared gojnilib:
121122
// github.com/golang/mobile/blob/2553ed8ce2/cmd/gomobile/bind_androidapp.go#L393
122-
envtraceback := os.Getenv("GOTRACEBACK")
123+
prevtraceback := os.Getenv("GOTRACEBACK")
123124
if settings.Debug {
125+
os.Setenv("GOTRACEBACK", sys.s())
124126
debug.SetTraceback(sys.s())
125127
} else {
128+
os.Setenv("GOTRACEBACK", usr.s())
126129
debug.SetTraceback(usr.s())
127130
}
131+
curtraceback := os.Getenv("GOTRACEBACK")
132+
core.RuntimeFinishDebugVarsSetup()
133+
gotracelevel, gotraceall, gotracecrash := core.RuntimeGotraceback()
128134

129-
log.I("tun: new levels; golog: %d, consolelog: %d; debug? %t; traceback: %s; sm? %t",
130-
dlvl, clvl, dbg, envtraceback, prevsm)
135+
log.I("tun: new levels; golog: %d, consolelog: %d; debug? %t; traceback: %s => %s (l: %d / a? %t / c? %t); sm? %t",
136+
dlvl, clvl, dbg, prevtraceback, curtraceback, gotracelevel, gotraceall, gotracecrash, prevsm)
131137
}
132138

133139
// FlightRecorder starts Go runtime's flight recorder if y is true,

0 commit comments

Comments
 (0)