[fpc-pascal] showing source linenumbers on exceptions

Bartek bbartek at gmx.net
Tue Jun 28 15:57:36 CEST 2005



Vincent Snijders wrote:

> Peter Vreman wrote:
>
>>> hi,
>>>
>>> how can i show source line numbers, when an exception occurs, like
>>> sysutils do?
>>> ...
>>> An unhandled exception occurred at $0040E9B5 :
>>> EInOutError : Invalid filename
>>>  $0040E9B5  TDXF__LOAD,  line 271 of dxffile.pas
>>>  $0040EFFA  TDXF__CREATE,  line 329 of dxffile.pas
>>>  $0040F24A  TPAPER__CREATE,  line 48 of dxfpaper.pas
>>>  $00401459  INIT_OBJECTS,  line 63 of e:/_development/work/dxf2mcr.pas
>>>  $00401529  INITPROC,  line 87 of e:/_development/work/dxf2mcr.pas
>>>  $00401F1F  INIT_FRAMEWORK,  line 107 of
>>> E:/_development/units/uframe_sdlogl.pas
>>> ...
>>>
>>> the only thing i found is the ShowExeption proc. but this does not 
>>> write
>>> what i expected.
>>> ...
>>> exception at 0040EA45:
>>>                      Invalid filename.
>>> ...
>>>
>>> is there a possibility to do this on my own?
>>> if found the proc:
>>> ...
>>> Procedure CatchUnhandledException (Obj : TObject; Addr: Pointer;
>>> FrameCount: Longint; Frames:
>>> PPointer);[public,alias:'FPC_BREAK_UNHANDLED_EXCEPTION'];
>>> ...
>>> but i don't how to set FrameCount and Frames.
>>
>>
>>
>> The current code in svn trunk contains an ExceptFrames and
>> ExceptFramecount function to return this information. See the lazarus 
>> code
>> how to use the functions.
>>
>
> To be precise, in the lclproc unit (lazarus\lcl\lclproc.pas) you can 
> find a DumpExceptionBackTrace. If you call this procedure in you 
> except block, you get the result that you want.
>
> If you don't want to add a dependency on the lcl in your code, you can 
> copy the code in this procedure and replace debugln by writeln. 
> DebugLn is like a writeln, but it can be redirected to file and does 
> not crash if it is used in a windows gui application, see 
> http://lazarus-ccr.sourceforge.net/kb/index.php/Lazarus_Faq#How_can_I_see_debug_output.3F) 
>
>
> Vincent.
>
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>
>
thanks, this is exactly what i was looking for!




More information about the fpc-pascal mailing list