October 10, 2008 [ddbg] wrong line numbers with unhandled exception | ||||
|---|---|---|---|---|
| ||||
Given this code:
--------------------
RunApplication...
30 //somw code;
31 yo(res);
32 return 1;
}
34
void yo(int r)
{
37 int[] s=new int[5];
38 s[6]=0;
39 if(r)throw new Exception("yooo");
}
------------------
ddbg describe exception thrown at line 39 as thrown at line 31:
Unhandled D Exception (object.Exception
"yooo") at KERNEL32.dll (0x77e6d756) thread(1016)
->us
#0 ?? () at tmp.d:31 from KERNEL32.dll
#1 0x00405034 in __d_throw@4 () at tmp.d:31 from deh
#2 0x004020ad in tmp.RunApplication () at tmp.d:31
#3 0x00402158 in WinMain (cmdShow = 10, cmdLine = 0x00141ee7, dummy = 0x00000000
, instance = 0x00400000) at tmp.d:76
#4 0x0041cf36 in _WinMainCRTStartup () from winstart
#5 0x77e7eb69 in ?? () from KERNEL32.dll
while exception at line 38 is desribed correctly as thrown at line 38:
Unhandled D Exception (std.array.ArrayBoundsError
"ArrayBoundsError tmp.d(38)") at KERNEL32.dll (0x77e6d756) thread(1348)
->us
#0 ?? () at tmp.d:38 from KERNEL32.dll
#1 0x00405070 in __d_throw@4 () at tmp.d:38 from deh
#2 0x004020e1 in tmp.yo () at tmp.d:38
#3 0x004020ad in tmp.RunApplication () at tmp.d:31
#4 0x00402174 in WinMain (cmdShow = 10, cmdLine = 0x00141ee7, dummy = 0x00000000
, instance = 0x00400000) at tmp.d:76
#5 0x0041d026 in _WinMainCRTStartup () from winstart
#6 0x77e7eb69 in ?? () from KERNEL32.dll
dmd 2.019, ddbg 0.11.3 beta.
| ||||
October 10, 2008 Re: [ddbg] wrong line numbers with unhandled exception | ||||
|---|---|---|---|---|
| ||||
Posted in reply to ore-sama | For some reason it losts functions from stacktrace When explicit throw occurs, RunApplication calls yo, yo calls _d_throw directly, yo is lost. On ArrayBoundsError yo calls _array, _array calls _d_array_bounds, _d_array_bounds calls _d_throw; _array and _d_array_bounds are lost. | |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply