[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-kernel
Subject:    Re: Signal callstack question
From:       Jamie Lokier <lkd () tantalophile ! demon ! co ! uk>
Date:       1999-11-30 23:05:08
[Download RAW message or body]


	Jim Nance wrote:
> Hello All,
>     I am writting a little profiling tool which uses a timer to signal my
> process, and then, in the signal handler it walks the call stack to see
> where it is.  My problem is that if I have a call stack like this:
> 
>     main() -> f1() -> f2() -> f3()
> 
> and I get a signal while I am in f3(), when I walk the call stack it looks
> like this:
> 
>     main() -> f1() -> f2() -> __restore -> signalHandler()
> 
> Since this is a profiler, it would really be nice to know that I am in the
> f3() function, but I can not figure out how to get this information.  I took
> a look at __restore and it is a little bit of code that calls the sigrestore()
> system call.  I assume that sigrestore() cleans up and puts f3() back onto
> the call stack.  Does anyone know how I can figure out the name of the
> function that was executing when I caught the signal?  The best I can come
> up with is to go back to f2() and try to disassemble the function call
> instruction, but I dont really like that approach (particularly since I don't
> know intel assembly).
> 
> Incidently, if a program longjmp()s out of a signal handler, and thus never
> calls sigrestore(), does this break anything (like queued signal delivery)?
> 
> Thanks,
> 
> Jim
> 
> Please read the FAQ at http://www.tux.org/lkml/
> 
> ------------------------------

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic