Actually what i want to trace is what all netfilter calls the packet trace till it reach destination. Will strace do that because i just ran the strace with client and the server sample program http://www.codeproject.com/Articles/586000/Networking-and-Socket-programming-tutorial-in-C
For the client i got the following result *strace -o /root/Desktop/traceq.txt ./cli* Message from server [root@client Desktop]# cat traceq.txt execve("./cli", ["./cli"], [/* 27 vars */]) = 0 brk(0) = 0x159c000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fea4c159000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=68323, ...}) = 0 mmap(NULL, 68323, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fea4c148000 close(3) = 0 open("/lib64/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\356Ah?\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=1926800, ...}) = 0 mmap(0x3f68400000, 3750152, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3f68400000 mprotect(0x3f6858b000, 2093056, PROT_NONE) = 0 mmap(0x3f6878a000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18a000) = 0x3f6878a000 mmap(0x3f6878f000, 18696, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3f6878f000 close(3) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fea4c147000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fea4c146000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fea4c145000 arch_prctl(ARCH_SET_FS, 0x7fea4c146700) = 0 mprotect(0x3f6878a000, 16384, PROT_READ) = 0 mprotect(0x3f67e1f000, 4096, PROT_READ) = 0 munmap(0x7fea4c148000, 68323) = 0 socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3 connect(3, {sa_family=AF_INET, sin_port=htons(5000), sin_addr=inet_addr("192.168.60.3")}, 16) = 0 read(3, "Message from server", 1023) = 19 fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 6), ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fea4c158000 write(1, "Message from server\n", 20) = 20 read(3, "", 1023) = 0 exit_group(0) *And for the server i got the following result* strace -o /root/Desktop/trace.txt ./ser socket retrieve success ^C [root@server Desktop]# cat trace traceprocess.sh trace.txt [root@server Desktop]# cat trace.txt execve("./ser", ["./ser"], [/* 26 vars */]) = 0 brk(0) = 0x1727000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f57e614c000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=69902, ...}) = 0 mmap(NULL, 69902, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f57e613a000 close(3) = 0 open("/lib64/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\356\1\2444\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=1926800, ...}) = 0 mmap(0x34a4000000, 3750152, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x34a4000000 mprotect(0x34a418b000, 2093056, PROT_NONE) = 0 mmap(0x34a438a000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18a000) = 0x34a438a000 mmap(0x34a438f000, 18696, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x34a438f000 close(3) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f57e6139000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f57e6138000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f57e6137000 arch_prctl(ARCH_SET_FS, 0x7f57e6138700) = 0 mprotect(0x34a438a000, 16384, PROT_READ) = 0 mprotect(0x34a3a1f000, 4096, PROT_READ) = 0 munmap(0x7f57e613a000, 69902) = 0 socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3 fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 2), ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f57e614b000 write(1, "socket retrieve success\n", 24) = 24 bind(3, {sa_family=AF_INET, sin_port=htons(5000), sin_addr=inet_addr("0.0.0.0")}, 16) = 0 listen(3, 10) = 0 accept(3, 0, NULL) = 4 write(4, "Message from server", 19) = 19 close(4) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7fffb1502640) = 0 accept(3, 0, NULL) = ? ERESTARTSYS (To be restarted) --- SIGINT (Interrupt) @ 0 (0) --- +++ killed by SIGINT +++ Regards On Tue, May 27, 2014 at 9:26 PM, Augusto Mecking Caringi < augustocari...@gmail.com> wrote: > On Tue, May 27, 2014 at 8:31 AM, Robert Clove <cloverob...@gmail.com> > wrote: > >> But there will be other packets also coming from the network like if some >> one is browsing the net on mozilla. >> I only want to trace the send() calls that i have used in my code,is that >> possible? >> > > Robert, > > You must specify the PID of your process (to attach strace to a > running process), or run your program through strace. > > Yon can use grep to filter only the write syscall. > > Regards. > > -- > Augusto Mecking Caringi >
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies