Skip to content

cmd/compile: include registerization info for gdb #2430

@ianlancetaylor

Description

@ianlancetaylor
What steps will reproduce the problem?

foo.go:

package main

import "os"

type I interface{}

func main() {
    var i I = 1
    os.Exit(i.(int))
}

6g foo.go
6l foo.6
gdb 6.out
GNU gdb (GDB) 7.2-gg20
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>;
Type "show copying" and "show warranty" for licensing/warranty
details.
This GDB was configured as "x86_64-linux".

<http://wiki/Main/GnuDebugger  FAQ: http://go/gdb  Email: gdb-team  IRC: #gdb>
Hey, I'm GDB 7.x.  Check me out!  http://wiki/Main/Gdb7x

Reading symbols from /home/iant/gcc/gccgo2-objdir/6.out...done.
Loading Go Runtime support.
(gdb) break foo.go:9
Breakpoint 1 at 0x400c36: file /home/iant/foo1.go, line 9.
(gdb) run
Starting program: /home/iant/gcc/gccgo2-objdir/6.out 

Breakpoint 1, main.main () at /home/iant/foo1.go:9
9       os.Exit(i.(int))
(gdb) print i
No symbol "i" in current context.
(gdb) info locals
No locals.
(gdb) step
runtime.assertE2T (t=void, e=void) at /home/iant/go/src/pkg/runtime/iface.c:286
286 runtime·assertE2T(Type *t, Eface e, ...)
(gdb) finish
Run till exit from #0  runtime.assertE2T (t=void, e=void)
    at /home/iant/go/src/pkg/runtime/iface.c:286
0x0000000000400c4f in main.main () at /home/iant/foo1.go:9
9       os.Exit(i.(int))
(gdb) print i
No symbol "i" in current context.
(gdb) step
os.Exit (code=1) at /home/iant/go/src/pkg/os/proc.go:34
34  func Exit(code int) { syscall.Exit(code) }



What is the expected output?

I expect to see information about the local variable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    NeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions