開始學習除錯MySQL

2021-09-22 18:59:39 字數 985 閱讀 7346

-ddownload_boost=1 -dwith_boost=/tmp -ddownload_boost_timeout=60000

make && make install

scripts/mysql_install_db --basedir=/home/mysql5.7/mysql-5.7.9/ --datadir=/home/mysql5.7/mysql-5.7.9/data --user=mysql5.7

原始碼安裝完mysql之後,使用debug模式啟動

mysqld

--debug--console &

然後重頭戲來了

先找到mysql的pid

[mysql5.7@localhost~]$ps -ef | grep mysqld

mysql5.7

26086     1  2 19:29 pts/3    00:00:01 mysqld --debug --console

mysql5.7 26170 26118  0 19:30 pts/3    00:00:00 grep mysqld

這時候,tail -f /tmp/mysqld.trace 

可以看到,任何在mysql的操作,呼叫的函式資訊都記錄在這個trace檔案中.

找到其中任意一行,比如 profiling::status_change

使用命令gdb除錯.

gdb --pid 26086 --tui

將上述函式打斷點.

break profiling::status_change

開啟另外乙個mysql終端.執行查詢,然後進入gdb的斷點.

可以看到原始碼,並且單步執行,列印變數.

看靜態的**一般比較枯燥,用這種方式感覺比較好入門.

同樣的方式,也適用於redis

Centos 開始Core除錯

一 允許生成core檔案更多詳細方法 1.ulimit a 檢視是否允許生成core檔案 此時大小限制為0,是不允許產生core檔案的,使用命令不限制core檔案大小 此時就允許生成core檔案。為了每次重啟後生效修改 bash profile中加入ulimit s c unlimited dev ...

開始使用 VSCode 除錯

一些由淺入深的 vscode 除錯例子,能讓你快速理解和上手 vscode 除錯。我是深度 vi 使用者,之前 atom 深度使用者,現在基本上轉到 vscode,下面是我選擇 vscode 的原因 最簡單的attach模式 深入launch和attach 如何使用 npm 怎樣使用 nodemon...

MySql從零開始學習筆記(二)

表的基本操作 1 建立表 create database person 2 修改表名 alter table 表名 rename 新錶名 3 新增列 alter table 表名 add column 列名 varchar 30 4 刪除列 alter table 表名 drop column 列名...