MySQL 9.0 版本注意事項
在某些作業系統上,如果 mysqld 意外終止,錯誤日誌會包含堆疊追蹤。您可以使用此資訊找出 mysqld 終止的位置(可能還有原因)。請參閱第 7.4.2 節「錯誤日誌」。若要取得堆疊追蹤,您必須不要使用 gcc 的 -fomit-frame-pointer
選項編譯 mysqld。請參閱第 7.9.1.1 節「編譯 MySQL 以進行偵錯」。
錯誤日誌中的堆疊追蹤看起來會像這樣
mysqld got signal 11;
Attempting backtrace. You can use the following information
to find out where mysqld died. If you see no messages after
this, something went terribly wrong...
stack_bottom = 0x41fd0110 thread_stack 0x40000
mysqld(my_print_stacktrace+0x32)[0x9da402]
mysqld(handle_segfault+0x28a)[0x6648e9]
/lib/libpthread.so.0[0x7f1a5af000f0]
/lib/libc.so.6(strcmp+0x2)[0x7f1a5a10f0f2]
mysqld(_Z21check_change_passwordP3THDPKcS2_Pcj+0x7c)[0x7412cb]
mysqld(_ZN16set_var_password5checkEP3THD+0xd0)[0x688354]
mysqld(_Z17sql_set_variablesP3THDP4ListI12set_var_baseE+0x68)[0x688494]
mysqld(_Z21mysql_execute_commandP3THD+0x41a0)[0x67a170]
mysqld(_Z11mysql_parseP3THDPKcjPS2_+0x282)[0x67f0ad]
mysqld(_Z16dispatch_command19enum_server_commandP3THDPcj+0xbb7[0x67fdf8]
mysqld(_Z10do_commandP3THD+0x24d)[0x6811b6]
mysqld(handle_one_connection+0x11c)[0x66e05e]
如果追蹤的函式名稱解析失敗,追蹤會包含較少資訊
mysqld got signal 11;
Attempting backtrace. You can use the following information
to find out where mysqld died. If you see no messages after
this, something went terribly wrong...
stack_bottom = 0x41fd0110 thread_stack 0x40000
[0x9da402]
[0x6648e9]
[0x7f1a5af000f0]
[0x7f1a5a10f0f2]
[0x7412cb]
[0x688354]
[0x688494]
[0x67a170]
[0x67f0ad]
[0x67fdf8]
[0x6811b6]
[0x66e05e]
較新版本的 glibc
堆疊追蹤函式也會將位址列印為相對於物件的位址。在以 glibc
為基礎的系統 (Linux) 上,外掛程式中意外結束的追蹤看起來會像這樣
plugin/auth/auth_test_plugin.so(+0x9a6)[0x7ff4d11c29a6]
若要將相對位址 (+0x9a6
) 轉換為檔案名稱和行號,請使用此命令
$> addr2line -fie auth_test_plugin.so 0x9a6
auth_test_plugin
mysql-trunk/plugin/auth/test_plugin.c:65
addr2line 公用程式是 Linux 上 binutils
套件的一部分。
在 Solaris 上,程序類似。Solaris printstack()
已列印相對位址
plugin/auth/auth_test_plugin.so:0x1510
若要轉換,請使用此命令
$> gaddr2line -fie auth_test_plugin.so 0x1510
mysql-trunk/plugin/auth/test_plugin.c:88
Windows 已列印位址、函式名稱和行號
000007FEF07E10A4 auth_test_plugin.dll!auth_test_plugin()[test_plugin.c:72]