[fpc-pascal] Exception callstacks, backtracks...

2007-02-07 Thread m utku

Hi all,

Basically I want to get a stack trace and log it when a special 
exception occurs. All I could find about was the lineinfo.pas (and -gl 
switch) but that does not help much as it interfaces only one procedure 
which is no good for client usage. What do I miss; what common things do 
you use for your own exception logging&handling?


Actually the ultimate solution would be having something like the 
infamous Madexcept or EurokaLog Delphi addins. Are there any similar 
attemps I overlooked?


It seems I will be using more and more FPC on my job and I am addicted 
to such tools which makes me mad when I need to debug for some crash 
just to get a callstack :) So, before I start rolling a solution, what 
are your advices and where should my efforts go so that the community 
would also benefit?


--
Best regards.

M. Utku Karatas
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal] Exception callstacks, backtracks...

2007-02-07 Thread Vincent Snijders

m utku schreef:

Hi all,

Basically I want to get a stack trace and log it when a special 
exception occurs. All I could find about was the lineinfo.pas (and -gl 
switch) but that does not help much as it interfaces only one procedure 
which is no good for client usage. What do I miss; what common things do 
you use for your own exception logging&handling?


Actually the ultimate solution would be having something like the 
infamous Madexcept or EurokaLog Delphi addins. Are there any similar 
attemps I overlooked?


It seems I will be using more and more FPC on my job and I am addicted 
to such tools which makes me mad when I need to debug for some crash 
just to get a callstack :) So, before I start rolling a solution, what 
are your advices and where should my efforts go so that the community 
would also benefit?




I don't know those tools, may Multilog does something similar:
http://wiki.lazarus.freepascal.org/MultiLog

Vincent
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal] Exception callstacks, backtracks...

2007-02-07 Thread Jonas Maebe


On 07 Feb 2007, at 22:06, m utku wrote:

Basically I want to get a stack trace and log it when a special  
exception occurs.


There's

Procedure Dump_Stack(var f : text;bp:pointer);

in the system unit. You can use it like this:

  dump_stack(stdout,get_frame);

to dump the current call stack to standard output (or to any other  
text file by replacing stdout with something else).



Jonas
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal] Exception callstacks, backtracks...

2007-02-07 Thread Luiz Americo Pereira Camara

Vincent Snijders wrote:

m utku schreef:

Hi all,

Basically I want to get a stack trace and log it when a special 
exception occurs. All I could find about was the lineinfo.pas (and 
-gl switch) but that does not help much as it interfaces only one 
procedure which is no good for client usage. What do I miss; what 
common things do you use for your own exception logging&handling?


Actually the ultimate solution would be having something like the 
infamous Madexcept or EurokaLog Delphi addins. Are there any similar 
attemps I overlooked?


It seems I will be using more and more FPC on my job and I am 
addicted to such tools which makes me mad when I need to debug for 
some crash just to get a callstack :) So, before I start rolling a 
solution, what are your advices and where should my efforts go so 
that the community would also benefit?




I don't know those tools, may Multilog does something similar:
http://wiki.lazarus.freepascal.org/MultiLog

Yes. It has a specialized SendCallStack function.

BTW: I will update it shortly

Luiz
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


[fpc-pascal] Re: Exception callstacks, backtracks...

2007-02-07 Thread m utku

Jonas Maebe <[EMAIL PROTECTED]> writes:
> There's
>
> Procedure Dump_Stack(var f : text;bp:pointer);
>
> in the system unit. You can use it like this:
>
>dump_stack(stdout,get_frame);
>

This cleared a lot on my mind, thanks Jonas...

Recently I have tried this:
//--
try
   AFunctionThatWillRaiseAnExceptionDeepInside;
except
   Dump_Stack(stdout, ExceptAddr);
end;
//--

Unfortunately this did not do what I thought: giving the callstack from the
point of where exception occured. Is there any way for that?

Thanks,
M. Utku Karatas
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: [fpc-pascal] Re: Exception callstacks, backtracks...

2007-02-07 Thread Luiz Americo

m utku escreveu:

Jonas Maebe <[EMAIL PROTECTED]> writes:
> There's
>
> Procedure Dump_Stack(var f : text;bp:pointer);
>
> in the system unit. You can use it like this:
>
>dump_stack(stdout,get_frame);
>

This cleared a lot on my mind, thanks Jonas...

Recently I have tried this:
//--
try
   AFunctionThatWillRaiseAnExceptionDeepInside;
except
   Dump_Stack(stdout, ExceptAddr);
end;
//--

Unfortunately this did not do what I thought: giving the callstack 
from the

point of where exception occured. Is there any way for that?

Multilog also provides a SendException method that will give the 
exception stack frame along other info


Luiz

___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal