digitalmars.D.bugs - [Issue 19991] New: win32: bad debug line info with unwining code
- d-bugmail puremagic.com (35/35) Jun 21 2019 https://issues.dlang.org/show_bug.cgi?id=19991
https://issues.dlang.org/show_bug.cgi?id=19991 Issue ID: 19991 Summary: win32: bad debug line info with unwining code Product: D Version: D2 Hardware: x86 OS: Windows Status: NEW Keywords: symdeb Severity: enhancement Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: r.sagitario gmx.de Compile this code with debug information for Win32 (i.e. with -m32 or -m32mscoff): int mightThrow(int x) { return x; } int main() { int x = 3; if (x == 0) // step in debugger return 1; // jumps here scope(exit) x = -1; mightThrow(1); // and continues here return 0; } Stepping over the if statement shows the return statement as the next instruction, even though the next step continues with the call to mightThrow. This is caused by the instruction settings the "exception marker" that remembers the code position for unwinding. It is considered to be part of the if statement. --
Jun 21 2019