Re: [PATCH] dump_stack() based on prologue code analysis

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Atsushi Nemoto wrote:
> On Thu, 27 Jul 2006 21:03:07 +0200, "Franck Bui-Huu" <vagabon.xyz@xxxxxxxxx> wrote:
>>>> +     info.func = (void *)(pc - ofs);
>>>> +     info.func_size = ofs;   /* analyze from start to ofs */
>> in get_frame_info(), there is the following condition to stop the
>> prologue analysis
>>
>> 		if (info->func_size && i >= info->func_size / 4)
>> 			break;
>>
>> Setting info.func_size = ofs may trigger this stop condition very
>> early, specially if "ofs" is small...I would simply remove this
>> condition since it's very empirical and IMHO not very usefull.
> 
> Yes, that is what I wanted.  Imagine if a exception happened on first
> place on non-leaf function.  In this case, we must assume the function
> is leaf since RA is not saved to the stack.
> 

The only case I can imagine is when sp is corrupted which is unlikely.
However an exception can occure just after a prologue of a nested
function which is more likely. In that case you will assume wrongly
that the function was a leaf one.

I don't think we gain more than we loose with this test. Maybe we can
just leave

 		if (i >= info->func_size)
 			break;

for safety purpose.

		Franck


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux