From: Russ Cox Date: Wed, 16 Apr 2014 01:17:18 +0000 (-0400) Subject: cmd/ld: record complete runtime-gdb.py path again X-Git-Tag: go1.3beta1~66 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=dacc020c00e8ad85cc3b006091632f76a79015be;p=gostls13.git cmd/ld: record complete runtime-gdb.py path again This code never got updated after the liblink shuffle. Tested by hand that it works and respects GOROOT_FINAL. The discussion in issue 6963 suggests that perhaps we should just drop runtime-gdb.py entirely, but I am not convinced that is true. It was in Go 1.2 and I don't see a reason not to keep it in Go 1.3. The fact that binaries have not been emitting the reference was just a missed detail in the liblink conversion, not part of a grand plan. Fixes #7506. Fixes #6963. LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews, iant, r https://golang.org/cl/87870048 --- diff --git a/src/cmd/ld/dwarf.c b/src/cmd/ld/dwarf.c index ff67223ad2..fdbf932b59 100644 --- a/src/cmd/ld/dwarf.c +++ b/src/cmd/ld/dwarf.c @@ -1393,26 +1393,26 @@ movetomodule(DWDie *parent) die->link = parent->child; } -// if the histfile stack contains ..../runtime/runtime_defs.go -// use that to set gdbscript +// If the pcln table contains runtime/zruntime_defs_*.go, use that to set gdbscript path. static void finddebugruntimepath(LSym *s) { - USED(s); - -/* TODO - int i, l; - char *c; + int i; + char *p; + LSym *f; + + if(gdbscript[0] != '\0') + return; - for (i = 1; i < histfilesize; i++) { - if ((c = strstr(histfile[i], "runtime/zruntime_defs")) != nil) { - l = c - histfile[i]; - memmove(gdbscript, histfile[i], l); - memmove(gdbscript + l, "runtime/runtime-gdb.py", strlen("runtime/runtime-gdb.py") + 1); + for(i=0; ipcln->nfile; i++) { + f = s->pcln->file[i]; + if((p = strstr(f->name, "runtime/string.goc")) != nil) { + *p = '\0'; + snprint(gdbscript, sizeof gdbscript, "%sruntime/runtime-gdb.py", f->name); + *p = 'r'; break; } } -*/ } /*