RFA: ia64 portion of libunwind patch

J. Johnston jjohnstn@redhat.com
Fri Nov 14 00:26:00 GMT 2003


I have just added a new patch which accounts for Andrew's latest xfer_partial 
changes.

Ok to commit?

-- Jeff J.

2003-11-13  Jeff Johnston  <jjohnstn@redhat.com>

	* config/ia64/nm-linux.h (NATIVE_XFER_UNWIND_TABLE): New macro to
	set up the ia64 linux native target method for getting the kernel
	unwind table.
	* ia64-linux-nat.c (ia64_linux_xfer_unwind_table): New function.
	* inftarg.c (child_xfer_partial): Enable section of code to
	handle TARGET_OBJECT_UNWIND_TABLE.
	* target.h (target_object): Add new TARGET_OBJECT_UNWIND_TABLE macro.


J. Johnston wrote:
> I have chosen the first option to implement the syscall.  I have 
> included a patch here regarding this mechanism.
> 
> Ok to commit?
> 
> -- Jeff J.
> 
> 2003-11-04  Jeff Johnston  <jjohnstn@redhat.com>
> 
>     * config/ia64/nm-linux.h (CHILD_TO_XFER_PARTIAL): New macro to set 
> up           the ia64 linux native target to_xfer_partial method.
>     (ia64_linux_xfer_partial): New prototype.
>     * ia64-linux-nat.c (ia64_linux_xfer_partial): New function.
>     * inftarg.c (init_child_ops)[CHILD_TO_XFER_PARTIAL]: Set up xfer 
> partial method if one provided via macro.
>     * target.c (init_dummy_target): Initialize to_xfer_partial to default.
>     * target.h (target_object): Add new TARGET_OBJECT_UNWIND_TABLE enum.
> 
> 
> Andrew Cagney wrote:
> 
>>> Nothing which involves a syscall is acceptable in a tdep file.  That's
>>> what the t means - target support.
>>
>>
>>
>> ("tdep" mysteriously means "architecture vector support".  That "t" 
>> really no longer makes sense :-()
>>
>> Yes, architecture vector shouldn't be directly making syscalls.  
>> Instead the architecture specific code should use the target vector to 
>> obtain this system information.  Here I think the best option is to 
>> add another TARGET_OBJECT_xxxx variant and then use the target_read() 
>> method to pull in the data.
>>
>> As for the native target side, ia64-linux-nat should export something 
>> like ia64_linux_child_read_partial that performs the syscall.  The 
>> tricky [er messy] part is wiring it into child_ops, I see there are 
>> lots of choices :-(
>>
>> - define a nm-*.c macro and have that enable the assignment (ex 
>> #define NATIVE_TO_READ_PARTIAL ia64_linux_child?) (ref KILL_INFERIOR)
>>
>> - have a callback set the to_read_partial method in child_ops 
>> (exec_set_find_memory_regions)
>>
>> - modify all the targets so that each implements the new method
>>
>> - others?
>>
>> Is this information available via /proc?  In a core file?
>>
>> Andrew
>>
>> PS: Note this pending patch.  Dependant on the timing you or I may 
>> need to tweak the name.
>> http://sources.redhat.com/ml/gdb-patches/2003-10/msg00795.html
>>
>>
>>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: xfer_partial.patch2
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20031114/48b240c4/attachment.ksh>


More information about the Gdb-patches mailing list