How can I set a breakpoint in gdb to stop program at every write to a particular file known by its name?
preguntado el 08 de noviembre de 11 a las 11:11
You can get GDB to stop on every
write llamada al sistema con
catch syscall write.
write operates on file descriptors, and not on named files, you can't make this breakpoint conditional on the name; you'll have to find out the file descriptor that corresponds to your "interesting" file first.
On Linux, you can look at
ls -l /proc/<pid>/fd/* to associate file descriptors with names.
Other systems may have
lsof, or other system-specific mechanisms for doing the same.
Once you have the file descriptor, you can make the
catch conditional (so GDB stops only when that particular file is written). The exact details of how to do that differ between operating systems and processors, and you didn't supply either.