I was tracing an executable with "strace". It terminates when getrlimit system call is generated. It gives a Segmentation fault because the ceiling limit provided is crossed by the application. SIGSEGV signal is generated.
I will explain in brief how it goes ::
1. When the application is run, it is executed upto the statement before when the shared object is actually needed because i am calling a function which is imported from a shared object.
2. when the statement containing the symbol imported from shared object is executed it gives an error symbol_lookup error.
3. when i trace the program with "strace" it terminates giving Segmentation Fault just after getrlimit system call.
4. So i wanted to know whether the getrlimit is invoked by the kernel when needed. Or is it called through another functions. If yes then which functions invoke this system call ( i should get it so that i can trace the code ).