mysql初步调试
第一次這么近距離的接觸源碼,有點興奮,又有點不知所措,尼瑪隨便一個源文件都有幾千行,你說怎么看,還有一些數不清的數據結構,函數,類等亂七八糟的東西。
我裝的mysql版本是5.7.12,然后運行平臺是centos 6.5 x64 (應該是x64)。
啟動gdb
gdb --args /usr/local/mysql-5.7.12/bin/mysqld也可以用如下,如果你設置了鏈接的話
gdb --args mysqld然后你就進入了gdb的環境中
在此呢,我們可以用b 函數名來添加斷點
這個個斷點是我在mysqld.cc的源文件中找的一個函數,隨便瞎找的一個。
然后用下面的這個命令來啟動mysqld
然后就是gdb c,c的意思是繼續的意思,剛剛run --defaults-file=/etc/my.cnf --user=root已經運行了,而且到達設置的斷點mysqld_main
如果此時我們用另一個客戶端service mysql status一下的話
發現mysql的服務并沒有啟動
于是我們繼續在gdb中輸入命令c
...
并且這里是等待模式,沒有出現(gdb)
然后在另一可以客戶端繼續service mysql status一下的話
會發現mysql的服務已經啟動了
繼續在這個客戶端操作,登錄mysql
mysql -uroot -hlocalhost -p發現可以成功的登錄進去了
然后再看看調試環境下
可以發現出現了一個新的線程,應該是客戶端連接的線程吧。
然后退出mysql,exit,發現gdb環境下沒啥變化,沒有說線程結束了什么的。
但是如果我們重新開一個客戶端登錄mysql,又會多出一個線程
關閉了客戶端仍然沒有發現這兩個線程退出的跡象。
當在一個客戶端關閉mysql服務的時候,service mysql stop,
會發現在gdb出現了這個
然后
Shutting down MySQL......................................這個點點無限循環下去
于是在gdb環境下,輸入命令c
(gdb) c Continuing. 2016-05-03T10:49:28.524672Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 180093ms. The settings might not be optimal. (flushed=0 and evicted=0, during the time.) [Thread 0x7fff957fb700 (LWP 4113) exited] [Thread 0x7fffb8c82700 (LWP 4162) exited] 2016-05-03T10:49:28.569814Z 0 [Note] Giving 0 client threads a chance to die gracefully 2016-05-03T10:49:28.569875Z 0 [Note] Shutting down slave threads 2016-05-03T10:49:28.569896Z 0 [Note] Forcefully disconnecting 0 remaining clients 2016-05-03T10:49:28.569912Z 0 [Note] Event Scheduler: Purging the queue. 0 events [Thread 0x7fffb8cc3700 (LWP 4135) exited] 2016-05-03T10:49:28.578091Z 0 [Note] Binlog end 2016-05-03T10:49:28.581076Z 0 [Note] Shutting down plugin 'ngram' 2016-05-03T10:49:28.581127Z 0 [Note] Shutting down plugin 'ARCHIVE' 2016-05-03T10:49:28.581135Z 0 [Note] Shutting down plugin 'partition' 2016-05-03T10:49:28.581139Z 0 [Note] Shutting down plugin 'BLACKHOLE' 2016-05-03T10:49:28.581170Z 0 [Note] Shutting down plugin 'CSV' 2016-05-03T10:49:28.581180Z 0 [Note] Shutting down plugin 'MEMORY' 2016-05-03T10:49:28.581189Z 0 [Note] Shutting down plugin 'MyISAM' 2016-05-03T10:49:28.581240Z 0 [Note] Shutting down plugin 'MRG_MYISAM' 2016-05-03T10:49:28.581250Z 0 [Note] Shutting down plugin 'PERFORMANCE_SCHEMA' 2016-05-03T10:49:28.581321Z 0 [Note] Shutting down plugin 'INNODB_SYS_VIRTUAL' 2016-05-03T10:49:28.581337Z 0 [Note] Shutting down plugin 'INNODB_SYS_DATAFILES' 2016-05-03T10:49:28.581341Z 0 [Note] Shutting down plugin 'INNODB_SYS_TABLESPACES' 2016-05-03T10:49:28.581345Z 0 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN_COLS' 2016-05-03T10:49:28.581349Z 0 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN' 2016-05-03T10:49:28.581352Z 0 [Note] Shutting down plugin 'INNODB_SYS_FIELDS' 2016-05-03T10:49:28.581356Z 0 [Note] Shutting down plugin 'INNODB_SYS_COLUMNS' 2016-05-03T10:49:28.581363Z 0 [Note] Shutting down plugin 'INNODB_SYS_INDEXES' 2016-05-03T10:49:28.581367Z 0 [Note] Shutting down plugin 'INNODB_SYS_TABLESTATS' 2016-05-03T10:49:28.581370Z 0 [Note] Shutting down plugin 'INNODB_SYS_TABLES' 2016-05-03T10:49:28.581374Z 0 [Note] Shutting down plugin 'INNODB_FT_INDEX_TABLE' 2016-05-03T10:49:28.581377Z 0 [Note] Shutting down plugin 'INNODB_FT_INDEX_CACHE' 2016-05-03T10:49:28.581381Z 0 [Note] Shutting down plugin 'INNODB_FT_CONFIG' 2016-05-03T10:49:28.581411Z 0 [Note] Shutting down plugin 'INNODB_FT_BEING_DELETED' 2016-05-03T10:49:28.581417Z 0 [Note] Shutting down plugin 'INNODB_FT_DELETED' 2016-05-03T10:49:28.581420Z 0 [Note] Shutting down plugin 'INNODB_FT_DEFAULT_STOPWORD' 2016-05-03T10:49:28.581424Z 0 [Note] Shutting down plugin 'INNODB_METRICS' 2016-05-03T10:49:28.581428Z 0 [Note] Shutting down plugin 'INNODB_TEMP_TABLE_INFO' 2016-05-03T10:49:28.581431Z 0 [Note] Shutting down plugin 'INNODB_BUFFER_POOL_STATS' 2016-05-03T10:49:28.581435Z 0 [Note] Shutting down plugin 'INNODB_BUFFER_PAGE_LRU' 2016-05-03T10:49:28.581438Z 0 [Note] Shutting down plugin 'INNODB_BUFFER_PAGE' 2016-05-03T10:49:28.581442Z 0 [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX_RESET' 2016-05-03T10:49:28.581445Z 0 [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX' 2016-05-03T10:49:28.581449Z 0 [Note] Shutting down plugin 'INNODB_CMPMEM_RESET' 2016-05-03T10:49:28.581452Z 0 [Note] Shutting down plugin 'INNODB_CMPMEM' 2016-05-03T10:49:28.581456Z 0 [Note] Shutting down plugin 'INNODB_CMP_RESET' 2016-05-03T10:49:28.581459Z 0 [Note] Shutting down plugin 'INNODB_CMP' 2016-05-03T10:49:28.581463Z 0 [Note] Shutting down plugin 'INNODB_LOCK_WAITS' 2016-05-03T10:49:28.581466Z 0 [Note] Shutting down plugin 'INNODB_LOCKS' 2016-05-03T10:49:28.581470Z 0 [Note] Shutting down plugin 'INNODB_TRX' 2016-05-03T10:49:28.581473Z 0 [Note] Shutting down plugin 'InnoDB' [Thread 0x7fffb8d04700 (LWP 4112) exited] 2016-05-03T10:49:28.581822Z 0 [Note] InnoDB: FTS optimize thread exiting. 2016-05-03T10:49:28.590938Z 0 [Note] InnoDB: Starting shutdown... [Thread 0x7fff96bfd700 (LWP 4110) exited] [Thread 0x7fff975fe700 (LWP 4109) exited] 2016-05-03T10:49:28.691896Z 0 [Note] InnoDB: Dumping buffer pool(s) to /usr/local/mysql-5.7.12/data/ib_buffer_pool 2016-05-03T10:49:28.692817Z 0 [Note] InnoDB: Buffer pool(s) dump completed at 160503 18:49:28 [Thread 0x7fffb0dbd700 (LWP 4101) exited] [Thread 0x7fff961fc700 (LWP 4111) exited] [Thread 0x7fffb17be700 (LWP 4100) exited] [Thread 0x7fff97fff700 (LWP 4108) exited] [Thread 0x7fffabfff700 (LWP 4102) exited] [Thread 0x7fffa8dfa700 (LWP 4107) exited] [Thread 0x7fffaabfd700 (LWP 4104) exited] [Thread 0x7fffa97fb700 (LWP 4106) exited] [Thread 0x7fffaa1fc700 (LWP 4105) exited] [Thread 0x7fffb23e5700 (LWP 4098) exited] [Thread 0x7fffab5fe700 (LWP 4103) exited] [Thread 0x7fffb37e7700 (LWP 4096) exited] [Thread 0x7fffb2de6700 (LWP 4097) exited] [Thread 0x7fffb87ef700 (LWP 4088) exited] [Thread 0x7fffb41e8700 (LWP 4095) exited] [Thread 0x7fffb4be9700 (LWP 4094) exited] [Thread 0x7fffb55ea700 (LWP 4093) exited] [Thread 0x7fffb69ec700 (LWP 4091) exited] [Thread 0x7fffb5feb700 (LWP 4092) exited] [Thread 0x7fffb73ed700 (LWP 4090) exited] [Thread 0x7fffb7dee700 (LWP 4089) exited] 2016-05-03T10:49:29.967622Z 0 [Note] InnoDB: Shutdown completed; log sequence number 2739027 2016-05-03T10:49:29.970363Z 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1" 2016-05-03T10:49:29.970416Z 0 [Note] Shutting down plugin 'sha256_password' 2016-05-03T10:49:29.970422Z 0 [Note] Shutting down plugin 'mysql_native_password' 2016-05-03T10:49:29.970683Z 0 [Note] Shutting down plugin 'binlog' 2016-05-03T10:49:29.971711Z 0 [Note] /usr/local/mysql-5.7.12/bin/mysqld: Shutdown complete[Thread 0x7fffeeeec700 (LWP 4087) exited]Program exited normally. (gdb)然后即使就是程序退出是的各種動作,嘩啦啦一片。
然后再看那個關閉mysql服務的客戶端
可以發現mysql服務已經徹底關閉了。
?
上面是初次用gdb來運行mysqld的過程,只能算是初涉吧。
總結
- 上一篇: 服务器搭建:3.1、openresty图
- 下一篇: SQL Server中常用的快捷键