From Bugzilla Helper: User-Agent: Mozilla/4.77 [en] (X11; U; Linux 2.2.19-6.2.16-KRUD-perfctr2.3.6 i586) Description of problem: strace-4.4-4.src.rpm has an oversight which inhibits meaningful output for the modify_ldt() system call. All the source to fully decode modify_ldt is in function sys_modify_ldt() in mem.c at about line 509. But file linux/dummy.h has #define sys_modify_ldt printargs in full view, so the output from strace contains only the top-level 3 arguments, instead of the exploded modify_ldt_ldt_s structure. Version-Release number of selected component (if applicable): strace-4.4-4.src.rpm How reproducible: Always Steps to Reproduce: 1. run strace on any i686 pthreaded program 2. look at the output for calls to modify_ldt 3. Actual Results: You get, for example modify_ldt(1, 0xbffffedc, 0x10) = 0 Expected Results: You should want, for example modify_ldt(1, {entry_number:0, base_address:0x400c1234, limit:1056, ... Additional info: Here is the fix [adjust tabbing]: put the #define for modify_ldt under the #if DONE conditional [which is 0, hence comments-out things which appear in its scope]. ======================== --- dummy.h.orig Mon Jun 17 21:28:31 2002 +++ dummy.h Mon Jun 17 21:29:19 2002 @@ -33,7 +33,6 @@ #define sys_syslog printargs #define sys_iopl printargs #define sys_vm86old printargs -#define sys_modify_ldt printargs #define sys_get_kernel_syms printargs #define sys_bdflush printargs #define sys_sysfs printargs @@ -205,4 +204,5 @@ #define sys_quotactl printargs #define sys_mlockall printargs #define sys_reboot printargs +#define sys_modify_ldt printargs #endif
Should be fixed in strace-4.4-6 in rawhide.