#python3 / newer versions of gdb
pc = int(pc)
except gdb.error:
- pc = int(str(pc), 16)
+ pc = int(str(pc).split(None, 1)[0], 16)
save_frame = gdb.selected_frame()
gdb.parse_and_eval('$save_pc = $pc')
gdb.parse_and_eval('$save_sp = $sp')
"-ex", "echo BEGIN print ptrvar\n",
"-ex", "print ptrvar",
"-ex", "echo END\n",
+ "-ex", "echo BEGIN goroutine 2 bt\n",
+ "-ex", "goroutine 2 bt",
+ "-ex", "echo END\n",
filepath.Join(dir, "a.exe")).CombinedOutput()
firstLine := bytes.SplitN(got, []byte("\n"), 2)[0]
if bl := blocks["print ptrvar"]; !strVarRe.MatchString(bl) {
t.Fatalf("print ptrvar failed: %s", bl)
}
+
+ btGoroutineRe := regexp.MustCompile(`^#0\s+runtime.+at`)
+ if bl := blocks["goroutine 2 bt"]; !btGoroutineRe.MatchString(bl) {
+ t.Fatalf("goroutine 2 bt failed: %s", bl)
+ }
}