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

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: