Unix questions - how can i know the system calls of command using truss or strace

This is Interesting: Free IT Magazines  
Home > Archive > Unix questions > September 2005 > how can i know the system calls of command using truss or strace





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author how can i know the system calls of command using truss or strace
hirenshah.05@gmail.com

2005-09-30, 2:50 am

i want to know actual system calls of unix command. i am using sun
solaris, so truss command will give me the system calls.

but when i using this command it is giving me lot of information, i am
not getting anything from it. i am looking for system calls.

eg.: truss ls


execve("/usr/bin/ls", 0xFFBEF764, 0xFFBEF76C) argc = 1
resolvepath("/usr/lib/ld.so.1", "/usr/lib/ld.so.1", 1023) = 16
open("/var/ld/ld.config", O_RDONLY) Err#2 ENOENT
stat("./libc.so.1", 0xFFBEED68) Err#2 ENOENT
stat("/apps/cadence/ldv41/tools/lib/libc.so.1", 0xFFBEED68) Err#2
ENOENT
stat("/apps/cadence/ldv41/tools/verilog/lib/libc.so.1", 0xFFBEED68)
Err#2 ENOENT
stat("/apps/cadence/ldv41/tools/vtools/vfault/lib/libc.so.1",
0xFFBEED68) Err#2 ENOENT
stat("/usr/lib/libc.so.1", 0xFFBEED68) = 0
open("/usr/lib/libc.so.1", O_RDONLY) = 3
mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0xFF390000
mmap(0xFF3A4FF4, 802816, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON,
-1, 0) = 0xFF280000
mmap(0xFF280000, 702392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
0) = 0xFF280000
mmap(0xFF33C000, 24772, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED, 3, 704512) = 0xFF33C000
munmap(0xFF32C000, 65536) = 0
memcntl(0xFF280000, 113528, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3) = 0
stat("./libdl.so.1", 0xFFBEED68) Err#2 ENOENT
stat("/apps/cadence/ldv41/tools/lib/libdl.so.1", 0xFFBEED68) Err#2
ENOENT
stat("/apps/cadence/ldv41/tools/verilog/lib/libdl.so.1", 0xFFBEED68)
Err#2 ENOENT
stat("/apps/cadence/ldv41/tools/vtools/vfault/lib/libdl.so.1",
0xFFBEED68) Err#2 ENOENT
stat("/usr/lib/libdl.so.1", 0xFFBEED68) = 0
open("/usr/lib/libdl.so.1", O_RDONLY) = 3
mmap(0xFF390000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
0) = 0xFF390000
mmap(0xFF3A4FF4, 8192, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON,
-1, 0) = 0xFF380000
mmap(0xFF380000, 2302, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF380000
close(3) = 0
stat("/usr/platform/SUNW,Ultra-Enterprise/lib/libc_psr.so.1",
0xFFBEEAE8) = 0
open("/usr/platform/SUNW,Ultra-Enterprise/lib/libc_psr.so.1", O_RDONLY)
= 3
mmap(0xFF390000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
0) = 0xFF390000
mmap(0xFF3A4CF4, 16384, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON,
-1, 0) = 0xFF370000
mmap(0xFF370000, 13800, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
0) = 0xFF370000
close(3) = 0
munmap(0xFF390000, 8192) = 0
brk(0x00024C98) = 0
brk(0x00026C98) = 0
stat("/usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-1.so.2",
0xFFBEE668) = 0
open("/usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-1.so.2", O_RDONLY)
= 3
mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0xFF390000
mmap(0xFF3A4CF4, 90112, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON,
-1, 0) = 0xFF350000
mmap(0xFF350000, 15170, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
0) = 0xFF350000
mmap(0xFF362000, 9134, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED, 3, 8192) = 0xFF362000
munmap(0xFF354000, 57344) = 0
memcntl(0xFF350000, 7260, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3) = 0
munmap(0xFF390000, 8192) = 0
time() = 1128050489
ioctl(1, TCGETA, 0xFFBEF68C) = 0
ioctl(1, TIOCGWINSZ, 0x0002472A) = 0
brk(0x00026C98) = 0
brk(0x0002EC98) = 0
lstat64(".", 0xFFBEF608) = 0
open64(".", O_RDONLY|O_NDELAY) = 3
fcntl(3, F_SETFD, 0x00000001) = 0
fstat64(3, 0xFFBEF548) = 0
brk(0x0002EC98) = 0
brk(0x00030C98) = 0
getdents64(3, 0x0002EBD0, 1048) = 1040
getdents64(3, 0x0002EBD0, 1048) = 152
getdents64(3, 0x0002EBD0, 1048) = 0
close(3) = 0
ioctl(1, TCGETA, 0xFFBED84C) = 0
200.000000]] batch.c filetry kdata records
write(1, " 2 0 0 . 0 0 0 0 0 0 ] ]".., 64) = 64
300.000000]] batch.h filetry.c kdatatry shellscript
write(1, " 3 0 0 . 0 0 0 0 0 0 ] ]".., 68) = 68
: batch.o find.out main temp
write(1, " : ".., 61) = 61
]] control.c getdata.c main.c try
write(1, " ] ] ".., 60) = 60
a.out control.o getdata.o Makefile try.c
write(1, " a . o u t ".., 62) = 62
allheader.h core inventory.c newtry xyz
write(1, " a l l h e a d e r . h ".., 60) = 60
XXX3 fi inventory.h newtry.c
write(1, " a s s 3 ".., 51) = 51
Assg_Make file inventory.o program
write(1, " A s s g _ M a k e ".., 50) = 50
llseek(0, 0, SEEK_CUR) = 79850
_exit(0)
hiren@hobbes:92: truss ls
execve("/usr/bin/ls", 0xFFBEF764, 0xFFBEF76C) argc = 1
resolvepath("/usr/lib/ld.so.1", "/usr/lib/ld.so.1", 1023) = 16
open("/var/ld/ld.config", O_RDONLY) Err#2 ENOENT
stat("./libc.so.1", 0xFFBEED68) Err#2 ENOENT
stat("/apps/cadence/ldv41/tools/lib/libc.so.1", 0xFFBEED68) Err#2
ENOENT
stat("/apps/cadence/ldv41/tools/verilog/lib/libc.so.1", 0xFFBEED68)
Err#2 ENOENT
stat("/apps/cadence/ldv41/tools/vtools/vfault/lib/libc.so.1",
0xFFBEED68) Err#2 ENOENT
stat("/usr/lib/libc.so.1", 0xFFBEED68) = 0
open("/usr/lib/libc.so.1", O_RDONLY) = 3
mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0xFF390000
mmap(0xFF3A4FF4, 802816, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON,
-1, 0) = 0xFF280000
mmap(0xFF280000, 702392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
0) = 0xFF280000
mmap(0xFF33C000, 24772, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED, 3, 704512) = 0xFF33C000
munmap(0xFF32C000, 65536) = 0
memcntl(0xFF280000, 113528, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3) = 0
stat("./libdl.so.1", 0xFFBEED68) Err#2 ENOENT
stat("/apps/cadence/ldv41/tools/lib/libdl.so.1", 0xFFBEED68) Err#2
ENOENT
stat("/apps/cadence/ldv41/tools/verilog/lib/libdl.so.1", 0xFFBEED68)
Err#2 ENOENT
stat("/apps/cadence/ldv41/tools/vtools/vfault/lib/libdl.so.1",
0xFFBEED68) Err#2 ENOENT
stat("/usr/lib/libdl.so.1", 0xFFBEED68) = 0
open("/usr/lib/libdl.so.1", O_RDONLY) = 3
mmap(0xFF390000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
0) = 0xFF390000
mmap(0xFF3A4FF4, 8192, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON,
-1, 0) = 0xFF380000
mmap(0xFF380000, 2302, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF380000
close(3) = 0
stat("/usr/platform/SUNW,Ultra-Enterprise/lib/libc_psr.so.1",
0xFFBEEAE8) = 0
open("/usr/platform/SUNW,Ultra-Enterprise/lib/libc_psr.so.1", O_RDONLY)
= 3
mmap(0xFF390000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
0) = 0xFF390000
mmap(0xFF3A4CF4, 16384, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON,
-1, 0) = 0xFF370000
mmap(0xFF370000, 13800, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
0) = 0xFF370000
close(3) = 0
munmap(0xFF390000, 8192) = 0
brk(0x00024C98) = 0
brk(0x00026C98) = 0
stat("/usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-1.so.2",
0xFFBEE668) = 0
open("/usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-1.so.2", O_RDONLY)
= 3
mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0xFF390000
mmap(0xFF3A4CF4, 90112, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON,
-1, 0) = 0xFF350000
mmap(0xFF350000, 15170, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
0) = 0xFF350000
mmap(0xFF362000, 9134, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED, 3, 8192) = 0xFF362000
munmap(0xFF354000, 57344) = 0
memcntl(0xFF350000, 7260, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3) = 0
munmap(0xFF390000, 8192) = 0
time() = 1128052012
ioctl(1, TCGETA, 0xFFBEF68C) = 0
ioctl(1, TIOCGWINSZ, 0x0002472A) = 0
brk(0x00026C98) = 0
brk(0x0002EC98) = 0
lstat64(".", 0xFFBEF608) = 0
open64(".", O_RDONLY|O_NDELAY) = 3
fcntl(3, F_SETFD, 0x00000001) = 0
fstat64(3, 0xFFBEF548) = 0
brk(0x0002EC98) = 0
brk(0x00030C98) = 0
getdents64(3, 0x0002EBD0, 1048) = 1040
getdents64(3, 0x0002EBD0, 1048) = 152
getdents64(3, 0x0002EBD0, 1048) = 0
close(3) = 0
ioctl(1, TCGETA, 0xFFBED84C) = 0
200.000000]] batch.c filetry kdata records
write(1, " 2 0 0 . 0 0 0 0 0 0 ] ]".., 64) = 64
300.000000]] batch.h filetry.c kdatatry shellscript
write(1, " 3 0 0 . 0 0 0 0 0 0 ] ]".., 68) = 68
: batch.o find.out main temp
write(1, " : ".., 61) = 61
]] control.c getdata.c main.c try
write(1, " ] ] ".., 60) = 60
a.out control.o getdata.o Makefile try.c
write(1, " a . o u t ".., 62) = 62
allheader.h core inventory.c newtry xyz




from above i want to know system calls of ls???????????????

Villy Kruse

2005-09-30, 2:50 am

On 29 Sep 2005 20:55:26 -0700,
hirenshah.05@gmail.com <hirenshah.05@gmail.com> wrote:


> i want to know actual system calls of unix command. i am using sun
> solaris, so truss command will give me the system calls.
>
> but when i using this command it is giving me lot of information, i am
> not getting anything from it. i am looking for system calls.
>
> eg.: truss ls
>



What you see is nothing but all the syscalls.


Villy
Chuck Dillon

2005-09-30, 5:56 pm

hirenshah.05@gmail.com wrote:
> i want to know actual system calls of unix command. i am using sun
> solaris, so truss command will give me the system calls.
>
> but when i using this command it is giving me lot of information, i am
> not getting anything from it. i am looking for system calls.
>
> eg.: truss ls


I'm guessing you are talking about the system(3c) function as opposed
to "system calls". system(3c) is not a system call it's a library
function. System calls are basically entry points into the system
kernel. That's what truss reports. system(3c) makes a number of
system calls including a fork and exec of some form.

-- ced


--
Chuck Dillon
Senior Software Engineer
NimbleGen Systems Inc.
Rich Gibbs

2005-09-30, 5:56 pm

hirenshah.05@gmail.com said the following, on 09/29/05 23:55:
> i want to know actual system calls of unix command. i am using sun
> solaris, so truss command will give me the system calls.
>
> but when i using this command it is giving me lot of information, i am
> not getting anything from it. i am looking for system calls.
>
> eg.: truss ls
>
>
> execve("/usr/bin/ls", 0xFFBEF764, 0xFFBEF76C) argc = 1
> resolvepath("/usr/lib/ld.so.1", "/usr/lib/ld.so.1", 1023) = 16
> open("/var/ld/ld.config", O_RDONLY) Err#2 ENOENT
> stat("./libc.so.1", 0xFFBEED68) Err#2 ENOENT
> stat("/apps/cadence/ldv41/tools/lib/libc.so.1", 0xFFBEED68) Err#2
> ENOENT
> stat("/apps/cadence/ldv41/tools/verilog/lib/libc.so.1", 0xFFBEED68)
> Err#2 ENOENT
> stat("/apps/cadence/ldv41/tools/vtools/vfault/lib/libc.so.1",
> 0xFFBEED68) Err#2 ENOENT
> stat("/usr/lib/libc.so.1", 0xFFBEED68) = 0
> open("/usr/lib/libc.so.1", O_RDONLY) = 3
> mmap(0x00000000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
> 0xFF390000
> mmap(0xFF3A4FF4, 802816, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON,
> -1, 0) = 0xFF280000
> mmap(0xFF280000, 702392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3,
> 0) = 0xFF280000
> mmap(0xFF33C000, 24772, PROT_READ|PROT_WRITE|PROT_EXEC,
> MAP_PRIVATE|MAP_FIXED, 3, 704512) = 0xFF33C000
> munmap(0xFF32C000, 65536) = 0
> memcntl(0xFF280000, 113528, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
> close(3) = 0
> stat("./libdl.so.1", 0xFFBEED68) Err#2 ENOENT
> stat("/apps/cadence/ldv41/tools/lib/libdl.so.1", 0xFFBEED68) Err#2
> ENOENT
> stat("/apps/cadence/ldv41/tools/verilog/lib/libdl.so.1", 0xFFBEED68)
> Err#2 ENOENT

[remaining output from 'truss' snipped]
>
>
>
>
> from above i want to know system calls of ls???????????????
>


Huh? What truss is giving you is precisely that: a listing of all the
system calls that 'ls' makes, such as 'stat', 'mmap', and 'open'. You
will find all of them in section 2 of the man pages.

Maybe you are confused about what the term "system call" means. The API
documented in section 2 consists of calls that are entry points to
routines in the Unix kernel. Section 3, by contrast, documents routines
in the C library. So 'open' is a system call; 'fopen' is a C library
routine (which very likely calls 'open' to do its work).

If what you are after is calls to the 'system(3)' library routine, then
using the debugger is probably the easiest way to see them.


--
Rich Gibbs
richg74@gmail.com
"You can observe a lot by watching." -- Yogi Berra

Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com