breakpad是google開源的乙個崩潰報告工具,按照其聲稱,生成的core file相當小,近日開始調研將其整合到我們線上mysql的可行性,以下是初步的安裝嘗試
1. checkout **
svn co breakpad
2. configure && make && make install
3.暴力cp src/client/linux/libbreakpad_client.a
4.測試程式
#include 「client/linux/handler/exception_handler.h」
#include
static bool dumpcallback(const google_breakpad::minidumpdescriptor &md,
void* context,
bool succeeded)
void crash()
int main()
g++ test.cc -o test -g -i src/ -lbreakpad_client -lpthread
$./test
dump path: /tmp/19b5df9c-6935-3923-125a8f20-21844c05.dmp
segmentation fault
breakpad包含了幾個工具:
a.dump_syms用於產生程式的符號資訊
dump_syms ./tesr > test.sym
$dump_syms ./test > test.sym
$head -n1 test.sym
module linux x86_64 ce30bab82b8b4b73d3a169c97011971d0 test
mkdir -p ./symbols/test/ce30bab82b8b4b73d3a169c97011971d0
mv test.sym ./symbols/test/ce30bab82b8b4b73d3a169c97011971d0/
b.minidump_stackwalk 用於分析產生的dmp檔案,輸出堆疊,cpu,os等資訊
例如crash reason: sigse**
crash address: 0x0
thread 0 (crashed)
0 test!crash [test.cc : 15 + 0x4]
rbx = 0x00007fffbf45a4b0 r12 = 0x00000000004015e0
r13 = 0x00007fffbf45a5d0 r14 = 0x0000000000000000
r15 = 0x0000000000000000 rip = 0x000000000040170d
rsp = 0x00007fffbf45a430 rbp = 0x00007fffbf45a430
found by: given as instruction pointer in context
1 test!main [test.cc : 22 + 0x4]
rbx = 0x00007fffbf45a4b0 r12 = 0x00000000004015e0
r13 = 0x00007fffbf45a5d0 r14 = 0x0000000000000000
r15 = 0x0000000000000000 rip = 0x00000000004017fc
rsp = 0x00007fffbf45a440 rbp = 0x00007fffbf45a4f0
found by: call frame info
2 libc-2.12.so + 0x1ec9c
rbx = 0x0000000000000000 r12 = 0x00000000004015e0
r13 = 0x00007fffbf45a5d0 r14 = 0x0000000000000000
r15 = 0x0000000000000000 rip = 0x000000388881ec9d
rsp = 0x00007fffbf45a500 rbp = 0x0000000000000000
found by: call frame info
3 test!crash [test.cc : 16 + 0x1]
rip = 0x0000000000401715 rsp = 0x00007fffbf45a520
found by: stack scanning
loaded modules:
0x00400000 – 0x00410fff test ??? (main)
0x3888000000 – 0x388801ffff ld-2.12.so ???
0x3888800000 – 0x3888b8bfff libc-2.12.so ???
0x3888c00000 – 0x3888e18fff libpthread-2.12.so ???
0x3889400000 – 0x3889683fff libm-2.12.so ???
0x388b400000 – 0x388b615fff libgcc_s-4.4.5-20110214.so.1 ???
0x388e400000 – 0x388e6f0fff libstdc++.so.6.0.13 ???
0x7fffbf5ff000 – 0x7fffbf5fffff linux-gate.so ???
簡單記錄下,還在摸索階段,下一步嘗試將其合併到mysql中,看看生成的core file大小是否可以接受。
初試MySQL筆記之一
mysql是乙個關係型資料庫管理系統 rdbms mysql的非商業應用是免費的。乙個資料庫可以包含若干個表 table 每個表的每一行 row 資料由若干個資料域 field 或者叫做資料列 column 組成的。連線mysql mysql h hostname u username p 然後輸入...
初試MYSQL全文檢索工具 Sphinx
參考文章 用 php 構建自定義搜尋引擎 sphinx速成指南 測試環境 作業系統 windows xp 資料庫版本 mysql server version 5.0.45 一 安裝 詳細安裝過程參考 sphinx速成指南 二 測試sphinx自帶的demo。1 匯入資料庫檔案example.sql...
MySQL視窗函式基礎初試(一)
mysql支援視窗函式,對於資料row的查詢,會使用一些相關的rows進行計算出乙個row。如下將會討論如何使用視窗函式,包括over以及window子句,本結只討論非聚集視窗函式。聚集視窗函式參考 聚集視窗函式 更多關於優化以及視窗函式參考 視窗函式優化 mysql視窗函式主要涉及一下內容 12....