freebsd-dev/usr.bin/truss
Marcel Moolenaar 4e92419dcd Do not ignore any possible errors that fseeko() may have. The fact
is that fseeko() fails in very predictable and frequent ways on ia64.
This is because the offset is actually an address in the process'
address space, which on ia64 can be larger than long (for lseek) or
off_t (for fseeko). The crux is the signedness. The register stack
and memory stack are in region 4 on ia64. This means that the sign bit
is 1. The large positive virtual address is wrongly interpreted as
a negative file offset.

There's no quick fix. Even if you get around the API by using a
SEEK_SET up to LONG_MAX and follow it up with a SEEK_CUR for the
remainder, the kernel simply cannot deal with it. and the second
seek will just fail.

Therefore, this change does not actually fix the root cause. It just
makes sure we're not spitting out all kinds of garbage or that the
get_struct() function in particular does not cause truss(1) to exit.
This, I might add, invariably happened way too soon for truss(1) to
be of any use on ia64...
2003-11-13 09:04:24 +00:00
..
alpha-fbsd.c Port truss(1) to 64-bit architectures: 2003-11-09 03:48:13 +00:00
amd64-fbsd32.c Port truss(1) to 64-bit architectures: 2003-11-09 03:48:13 +00:00
amd64-linux32.c Port truss(1) to 64-bit architectures: 2003-11-09 03:48:13 +00:00
extern.h Port truss(1) to 64-bit architectures: 2003-11-09 03:48:13 +00:00
i386-fbsd.c Port truss(1) to 64-bit architectures: 2003-11-09 03:48:13 +00:00
i386-linux.c Port truss(1) to 64-bit architectures: 2003-11-09 03:48:13 +00:00
i386.conf
i386linux.conf
ia64-fbsd.c Port truss(1) to 64-bit architectures: 2003-11-09 03:48:13 +00:00
main.c Port truss(1) to 64-bit architectures: 2003-11-09 03:48:13 +00:00
Makefile Use cat(1) instead of cp(1) so as not to break -DNOCLEAN builds 2003-06-06 05:38:09 +00:00
setup.c Add FBSDID. Do not \n terminate warnx() argument. fprint() -> warnx(). 2003-09-07 15:50:43 +00:00
sparc64-fbsd.c Port truss(1) to 64-bit architectures: 2003-11-09 03:48:13 +00:00
syscall.h Port truss(1) to 64-bit architectures: 2003-11-09 03:48:13 +00:00
syscalls.c Do not ignore any possible errors that fseeko() may have. The fact 2003-11-13 09:04:24 +00:00
truss.1
truss.h