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 * 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 > > >