Gdb scripts can be used to fix bugs easily. So I collect some gdb script here as reference.
The first script is used to find the deadlock caused by mutex misuse.
Reference : Debug Hacks
1. For example: debug.cmd
set pagination offset logging file debug.log
set logging overwrite
set logging on
start
set $addr1 = pthread_mutex_lock
set $addr2 = pthread_mutex_unlock
b *$addr1
b *$addr2
while 1
c
if $pc != $addr1 & $pc != $addr2
quit
end
printf "## addr : %08x\n", *(int *)($esp+4)
bt
end
NOTE: when you press ctrl+c, this script will quit.
2. Usage
$ gdb ./a.out -x debug.cmd