digitalmars.D.bugs - [Issue 21771] New: gdb: Debug information should include FQN for
- d-bugmail puremagic.com (40/40) Mar 25 2021 https://issues.dlang.org/show_bug.cgi?id=21771
https://issues.dlang.org/show_bug.cgi?id=21771 Issue ID: 21771 Summary: gdb: Debug information should include FQN for main function Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: hsteoh quickfur.ath.cx Code: ---------- void fun() {} void gun() {} void main() { void hun() {} } ---------- Compile with `dmd -g prog.d`. Inside gdb: ---------- (gdb) break prog.<tab> prog.d prog.fun() prog.gun() prog.main().hun() ---------- Notice that main() is missing from the above list. Turns out, the only way to break in the main function is to specify it as `D main` (with the space). Worse yet, if you `break prog.main`, it will actually set the breakpoint inside hun() instead. (It's not clear from the above because the line number coincides with the body of main, but if you add some code into main and hun() and test it in the debugger, you'll see.) Expected behaviour: - Since all the other functions in the module are recognized by their FQN in gdb, `main` should also be recognized by its FQN. - Setting a breakpoint on `prog.main` should not set a breakpoint inside the nested function hun()! --
Mar 25 2021