]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/ld: record complete runtime-gdb.py path again
authorRuss Cox <rsc@golang.org>
Wed, 16 Apr 2014 01:17:18 +0000 (21:17 -0400)
committerRuss Cox <rsc@golang.org>
Wed, 16 Apr 2014 01:17:18 +0000 (21:17 -0400)
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

src/cmd/ld/dwarf.c

index ff67223ad28e57faef01a5085228301b61e35713..fdbf932b5912aab1c366dc5699978f6440af3f02 100644 (file)
@@ -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; i<s->pcln->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;
                }
        }
-*/
 }
 
 /*