Dans gdb
, vous pouvez définir un point d'arrêt syscall avec catch syscall
.
Si c'est en 32 bits x86 (IA-32), vérifiez le numéro d'appel système dans your_linux_source_dir / usr / include / asm / unistd_32.h
. Il n'y a pas d'appel système appelé socket
dans 32 bits x86, voulez-vous dire socketcall
? Son numéro est 102.
S'il s'agit de x86-64 (AMD64), vérifiez le numéro d'appel système dans your_linux_kernel_source_dir / usr / include / asm / unistd_64.h
. L'appel système appelé socket
est 41.
Ensuite, lancez l'exécutable dans gdb
:
$ gdb myexecutable
Et définissez le point d'arrêt syscall (41 est le numéro syscall socket
dans x86-64, changez le numéro d'appel système approprié pour vous):
(gdb) catch syscall 41
Et puis exécutez le programme:
(gdb) r
L'utilisation du nom de l'appel système (tel que socket
) au lieu du numéro (par exemple 41
) peut également fonctionner, selon votre configuration.