Re: strace needs your help!
On Thu, Jul 08, 1999 at 12:37:58AM +0200, Wichert Akkerman wrote:
>
> I have currently only one bug reamining which I want to solve before
> releasing strace 4.0, and it involves only two architectures: alpha
> and powerpc.
>
> The problem is that the stat structure is not decoded correctly. To see
> this happening simply try the following command:
>
> strace -v ls -ald .
>
> I suspect it has something to do with 64bit kerneltypes, but I can't see
> where it's going wrong..
>
> Please note I made some changes since the last Debian package, so using
> the CVS version might be a good idea. The CVS archive is at the
> following address:
>
> :pserver:anonymous@cvs.debian.org:/cvs/strace
>
> The password is empty, and module is strace. Alternative there are also
> daily snapshots at the strace homepage
> http://www.wi.leidenuniv.nl/~wichert/strace/
>
> Any help is appreciated!
The attached patch fixes the problem. It's a little ugly, but it
basically allows the kernel's ideas of the type sizes to be visible to
strace. Libc has other ideas.
Dan
/--------------------------------\ /--------------------------------\
| Daniel Jacobowitz |__| SCS Class of 2002 |
| Debian GNU/Linux Developer __ Carnegie Mellon University |
| dan@debian.org | | dmj+@andrew.cmu.edu |
\--------------------------------/ \--------------------------------/
Index: file.c
===================================================================
RCS file: /cvs/strace/strace/file.c,v
retrieving revision 1.14
diff -u -r1.14 file.c
--- file.c 1999/06/11 13:18:40 1.14
+++ file.c 1999/07/08 01:45:29
@@ -66,7 +66,25 @@
# include <asm/stat.h>
# undef stat
# else
+# define dev_t __kernel_dev_t
+# define ino_t __kernel_ino_t
+# define mode_t __kernel_mode_t
+# define nlink_t __kernel_nlink_t
+# define uid_t __kernel_uid_t
+# define gid_t __kernel_gid_t
+# define off_t __kernel_off_t
+# define loff_t __kernel_loff_t
+
# include <asm/stat.h>
+
+# undef dev_t
+# undef ino_t
+# undef mode_t
+# undef nlink_t
+# undef uid_t
+# undef gid_t
+# undef off_t
+# undef loff_t
# endif
# define stat libc_stat
# include <sys/stat.h>
Reply to: