System call trace
Can we see trace of how the system call works? What are the functions are called in kernel space? For example we want to trace cp command. Then what are the functions is get called by that in kernel space? like how the inode allocation take place for new destination file etc. Is any tool for that? -- Regards, Swapnil Gaikwad. ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: System call trace
On Wed, Feb 15, 2012 at 4:38 PM, Swapnil Gaikwad swapnilgai...@gmail.com wrote: Can we see trace of how the system call works? What are the functions are called in kernel space? For example we want to trace cp command. Then what are the functions is get called by that in kernel space? like how the inode allocation take place for new destination file etc. Is any tool for that? I think strace [0][1] is what you are looking for. strace executable will list all the system calls made by the executable during runtime (you can filter what calls you want traced). A syscall is by definition a function that is ran in kernel space, called by the userspace. If you want to see what function is called when there's a certain syscall, you should take a look at the syscall descriptor table. It's an array for function pointers. You can talke a look at the kernel' source code to see the implementation of the syscall. Now, to track what the kernel is doing, while in a syscall, I can't remember a tool that would do that... maybe somebody else can help. [0] http://linux.die.net/man/1/strace [1] http://en.wikipedia.org/wiki/Strace -- Alexandru Juncu ROSEdu ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Re: System call trace
Hi :) On Wed, Feb 15, 2012 at 21:38, Swapnil Gaikwad swapnilgai...@gmail.com wrote: Can we see trace of how the system call works? What are the functions are called in kernel space? For example we want to trace cp command. Then what are the functions is get called by that in kernel space? like how the inode allocation take place for new destination file etc. Is any tool for that? Besides using strace, you might find User Mode Linux useful in this case. Just attach gdb to the UML kernel, put breakpoint into system call entry, and then do step to follow how it goes. Note that UML might not precisely mimic real kernel, but at least it will give you idea. Other than that, cscope and/or websites like lxr.linux.no are your best friend for such code exploration :) -- regards, Mulyadi Santosa Freelance Linux trainer and consultant blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies