[patch] Fix bug of syscall.lseek's offset

Lai Jiangshan laijs@cn.fujitsu.com
Tue Aug 21 15:14:00 GMT 2007


hi, all
	"offset = __int32($offset)" was found in syscalls.stp(syscall.lseek),
it was wrong on IA64. All the other "offset" in tapset are not converted to 32bit integer.

the following patch can fix this bug

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>

diff -Nur systemtap-20070818/tapset/syscalls.stp systemtap-20070818-new/tapset/syscalls.stp
--- systemtap-20070818/tapset/syscalls.stp	2007-08-18 00:05:11.000000000 +0900
+++ systemtap-20070818-new/tapset/syscalls.stp	2007-08-21 15:53:45.000000000 +0900
@@ -2008,7 +2008,7 @@
 probe syscall.lseek = kernel.function("sys_lseek") {
 	name = "lseek"
 	fildes = $fd
-	offset = __int32($offset)
+	offset = $offset
 	whence = $origin
 	whence_str = _seek_whence_str($origin)
 	argstr = sprintf("%d, %d, %s", $fd, offset, whence_str)


best regards!
Lai Jiangshan



More information about the Systemtap mailing list