¿Cómo encontrar implementaciones de llamada de sistema en Linux / Android 2.6.29?

Quiero modificar algunas llamadas de sistema con fines de rastreo. Para ser específico, cuando se realiza una llamada de sistema open , quiero imprimir algunos mensajes.

He estado buscando en Internet y el código y encontré open.c en el open.c kernel/goldfish/fs/ . Y hay muchas funciones en este archivo. ¿Cómo puedo saber qué función se está llamando exactamente. Podría haber escrito alguna llamada printk en todas estas funciones para encontrarlo, pero tengo que hacerlo para otras llamadas al sistema también.

Por lo tanto, tengo algunas preguntas,

1) ¿Cuál es la mejor manera de encontrar detalles de implementación de las llamadas al sistema?

2) Estoy usando el kernel 2.6.29 (goldfish-Android). ¿La implementación de las llamadas del sistema es diferente en las diferentes versiones del kernel?

3) strace me dice que se están realizando las llamadas al sistema msgget , msgrecv y SYS_24. Miro en el archivo de Android/bionic/libc/SYSCALLS.txt y msgget no está allí.

Pero cuando miro el archivo android/bionic/libc/kernel/arch-arm/asm/unistd.h , puedo encontrar el msgget allí. No puedo entender lo que está pasando y luego ¿cómo puedo encontrar la implementación de msgget ?

Gracias.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.