Skip to content

Instantly share code, notes, and snippets.

@maliubiao
Last active August 29, 2015 14:06
Show Gist options
  • Save maliubiao/1865332384ac7700f721 to your computer and use it in GitHub Desktop.
Save maliubiao/1865332384ac7700f721 to your computer and use it in GitHub Desktop.
mysql thread backtrace
import gdb
import os
log = "/tmp/gdb.out"
pid = int(open("/tmp/gdb.in", "r").read())
gdb.execute("attach %d" % pid)
logfile = open(log, "w+", buffering=0)
p = gdb.selected_inferior()
of = "{:<5}{:<10}{:<5}\n"
logfile.write(of.format("NUM", "NAME", "TID"))
for t in p.threads():
logfile.write(of.format(t.num, t.name, t.ptid[1]))
t.switch()
logfile.write(gdb.execute("backtrace", to_string=True))
gdb.execute("detach")
#! /bin/sh
echo $1 > /tmp/gdb.in
gdb --batch-silent --python mysql_backtrace.py
cat /tmp/gdb.out
rm /tmp/gdb.in
./mysql_backtrace.sh pid
NUM NAME TID
21 mysqld 1404
#0 0x00007f3a925f66a4 in ?? () from /lib64/libaio.so.1
#1 0x0000000000938605 in ?? ()
#2 0x00000000008ea4cf in ?? ()
#3 0x000000000085be08 in ?? ()
#4 0x00007f3a91d8b0db in start_thread (arg=0x7f3a90b60700) at pthread_create.c:309
#5 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
20 mysqld 1405
#0 0x00007f3a925f66a4 in ?? () from /lib64/libaio.so.1
#1 0x0000000000938605 in ?? ()
#2 0x00000000008ea4cf in ?? ()
#3 0x000000000085be08 in ?? ()
#4 0x00007f3a91d8b0db in start_thread (arg=0x7f3a7e9dc700) at pthread_create.c:309
#5 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
19 mysqld 1406
#0 0x00007f3a925f66a4 in ?? () from /lib64/libaio.so.1
#1 0x0000000000938605 in ?? ()
#2 0x00000000008ea4cf in ?? ()
#3 0x000000000085be08 in ?? ()
#4 0x00007f3a91d8b0db in start_thread (arg=0x7f3a7e1db700) at pthread_create.c:309
#5 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
18 mysqld 1407
#0 0x00007f3a925f66a4 in ?? () from /lib64/libaio.so.1
#1 0x0000000000938605 in ?? ()
#2 0x00000000008ea4cf in ?? ()
#3 0x000000000085be08 in ?? ()
#4 0x00007f3a91d8b0db in start_thread (arg=0x7f3a7d9da700) at pthread_create.c:309
#5 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
17 mysqld 1408
#0 0x00007f3a925f66a4 in ?? () from /lib64/libaio.so.1
#1 0x0000000000938605 in ?? ()
#2 0x00000000008ea4cf in ?? ()
#3 0x000000000085be08 in ?? ()
#4 0x00007f3a91d8b0db in start_thread (arg=0x7f3a7d1d9700) at pthread_create.c:309
#5 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
16 mysqld 1409
#0 0x00007f3a925f66a4 in ?? () from /lib64/libaio.so.1
#1 0x0000000000938605 in ?? ()
#2 0x00000000008ea4cf in ?? ()
#3 0x000000000085be08 in ?? ()
#4 0x00007f3a91d8b0db in start_thread (arg=0x7f3a7c9d8700) at pthread_create.c:309
#5 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
15 mysqld 1410
#0 0x00007f3a925f66a4 in ?? () from /lib64/libaio.so.1
#1 0x0000000000938605 in ?? ()
#2 0x00000000008ea4cf in ?? ()
#3 0x000000000085be08 in ?? ()
#4 0x00007f3a91d8b0db in start_thread (arg=0x7f3a7c1d7700) at pthread_create.c:309
#5 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
14 mysqld 1411
#0 0x00007f3a925f66a4 in ?? () from /lib64/libaio.so.1
#1 0x0000000000938605 in ?? ()
#2 0x00000000008ea4cf in ?? ()
#3 0x000000000085be08 in ?? ()
#4 0x00007f3a91d8b0db in start_thread (arg=0x7f3a7b9d6700) at pthread_create.c:309
#5 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
13 mysqld 1412
#0 0x00007f3a925f66a4 in ?? () from /lib64/libaio.so.1
#1 0x0000000000938605 in ?? ()
#2 0x00000000008ea4cf in ?? ()
#3 0x000000000085be08 in ?? ()
#4 0x00007f3a91d8b0db in start_thread (arg=0x7f3a7b1d5700) at pthread_create.c:309
#5 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
12 mysqld 1413
#0 0x00007f3a925f66a4 in ?? () from /lib64/libaio.so.1
#1 0x0000000000938605 in ?? ()
#2 0x00000000008ea4cf in ?? ()
#3 0x000000000085be08 in ?? ()
#4 0x00007f3a91d8b0db in start_thread (arg=0x7f3a7a9d4700) at pthread_create.c:309
#5 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
11 mysqld 1415
#0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1 0x000000000093a283 in ?? ()
#2 0x0000000000858910 in ?? ()
#3 0x00007f3a91d8b0db in start_thread (arg=0x7f3a79c36700) at pthread_create.c:309
#4 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
10 mysqld 1416
#0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1 0x000000000093a283 in ?? ()
#2 0x0000000000858ea1 in ?? ()
#3 0x00007f3a91d8b0db in start_thread (arg=0x7f3a79435700) at pthread_create.c:309
#4 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
9 mysqld 1417
#0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1 0x000000000093a283 in ?? ()
#2 0x00000000008585eb in ?? ()
#3 0x00007f3a91d8b0db in start_thread (arg=0x7f3a78c34700) at pthread_create.c:309
#4 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
8 mysqld 1418
#0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1 0x000000000093a283 in ?? ()
#2 0x00000000008591b3 in ?? ()
#3 0x00007f3a91d8b0db in start_thread (arg=0x7f3a78433700) at pthread_create.c:309
#4 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
7 mysqld 1419
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1 0x000000000093a179 in ?? ()
#2 0x0000000000859ca3 in ?? ()
#3 0x00007f3a91d8b0db in start_thread (arg=0x7f3a77c32700) at pthread_create.c:309
#4 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
6 mysqld 1420
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1 0x000000000093a179 in ?? ()
#2 0x000000000085ba71 in ?? ()
#3 0x00007f3a91d8b0db in start_thread (arg=0x7f3a77431700) at pthread_create.c:309
#4 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
5 mysqld 1424
#0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1 0x0000000000997606 in ?? ()
#2 0x000000000098edb1 in ?? ()
#3 0x00007f3a91d8b0db in start_thread (arg=0x7f3a6ec2f700) at pthread_create.c:309
#4 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
4 mysqld 1425
#0 do_sigwait (set=<optimized out>, sig=0x7f3a7a1d2de0) at ../sysdeps/unix/sysv/linux/sigwait.c:63
#1 0x00007f3a91d927b3 in __sigwait (set=0x7f3a7a1d2e40, sig=0x0) at ../sysdeps/unix/sysv/linux/sigwait.c:97
#2 0x0000000000542603 in signal_hand ()
#3 0x00007f3a91d8b0db in start_thread (arg=0x7f3a7a1d3700) at pthread_create.c:309
#4 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
3 mysqld 1426
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1 0x00000000005436af in one_thread_per_connection_end(THD*, bool) ()
#2 0x000000000066e490 in do_handle_one_connection(THD*) ()
#3 0x000000000066e5b1 in handle_one_connection ()
#4 0x00007f3a91d8b0db in start_thread (arg=0x7f3a7a18a700) at pthread_create.c:309
#5 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
2 mysqld 1429
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1 0x00000000005436af in one_thread_per_connection_end(THD*, bool) ()
#2 0x000000000066e490 in do_handle_one_connection(THD*) ()
#3 0x000000000066e5b1 in handle_one_connection ()
#4 0x00007f3a91d8b0db in start_thread (arg=0x7f3a7a141700) at pthread_create.c:309
#5 0x00007f3a90e5f58d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
1 mysqld 1401
#0 0x00007f3a90e567bd in poll () at ../sysdeps/unix/syscall-template.S:81
#1 0x0000000000543e0b in handle_connections_sockets() ()
#2 0x0000000000548fbf in mysqld_main(int, char**) ()
#3 0x00007f3a90d99be5 in __libc_start_main (main=0x52ec10 <main>, argc=4, argv=0x7fff85e6ea98, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff85e6ea88) at libc-start.c:269
#4 0x000000000053f929 in _start ()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment