通过GDB non-stop mode 调试MySQL
💡
原文中文,约1300字,阅读约需3分钟。
📝
内容提要
通过GDB non-stop mode调试MySQL,方便构造复现死锁场景。non-stop mode只停止命中断点的线程,其他线程继续运行。设置non-stop mode可阻塞一个线程,其他线程继续执行。使用continue命令切换线程,实现多个线程轮流运行。根据需求选择执行线程。
🎯
关键要点
- 通过GDB non-stop mode调试MySQL,方便构造复现死锁场景。
- 使用GDB时需先开启GDB,然后attach到mysql_pid。
- 设置non-stop mode可阻塞一个线程,其他线程继续执行。
- 在non-stop mode中,只有命中断点的线程会停止,其他线程继续运行。
- 需要配合设置set target-async 1和set pagination off。
- 可以通过执行c -a命令让所有线程继续运行,c命令只运行当前线程。
- 通过continue命令可以切换线程,实现多个线程轮流运行。
- 可以根据需求选择执行特定线程,例如在do_command上设置断点后选择执行的线程。
🏷️
标签
➡️