原创 How Debuger works Mark&Learn

以前一直覺得Debuger很神祕,爲什麼進程可以attach/detach? 條件斷點是如何工作的?遠程debug會比本地debug慢嗎(因爲網絡開銷)?宇宙最強IDE visual studio背後運行的原理又有哪些? 讀完這個

原创 vscode linux debug skills & vscode settings.json & launch.json

vscode 在虛擬機中運行需要禁用 3D 加速。或者在 .bashrc 中添加 alias code="code --disable-gpu" settings.json 常用配置: { "git.enabled":

原创 Memory Leak Debug with Visual Studio ...

結合這篇文章,完善一下Windows 和 Linux 內存泄漏 debug。 本文總結一下之前在Windows上debug的一個內存泄漏問題的經過: 一般一個程序出現少量內存泄漏的話(如果不是很嚴重),需要觀察一段時間的內存佔用才

原创 關於 “將靜態庫改成動態庫” 的思考

在編寫任何一個框架(c++ 庫) 的時候,需要想好編譯配置: 是否需要跨平臺: 操作系統抽象層(條件編譯,系統時間,條件變量,鎖,文件讀寫,線程等等) 靜態庫: 頭文件&庫文件,區分好Debug/Release… 動態庫: 考慮

原创 Perforce Reconcile Offline Work 功能——P4V修改對應目錄,自動checkout, add, delete。

在批量操作文件的時候(例如替換某個目錄),很容易就忘了對某個文件 Checkout / Mark Add/ Mark Delete/ ..., 這樣會導致 Perforce 服務器上文件與本地目錄中不一致,而只執行了部分提交的操作

原创 C++ 串行化——A practical guide to C++ serialization

爲什麼需要 serialization ? 因爲有時候需要將一個結構化的數據傳輸到網絡上,有時候需要將數據保存成文本;然後其他程序在需要使用這個數據的時候直接從網絡接受或者從文本讀取然後恢復成原本的數據結構即可。 1.Boost

原创 MySQL 主從複製 Group Replication & InnoDB Cluster 總結

MySQL 部署的方式: 1 master + n slave 傳統的異步同步方式 MySQL8 Group Replication + InnoDB Cluster(MySQL Shell) + MySQL Router8 高

原创 從git server歷史記錄中刪除錯誤提交的文件

侵刪,引用自: https://www.link-intersystems.com/blog/2014/07/17/remove-directories-and-files-permanently-from-git/ 保存腳本爲

原创 Cassandra Tracing, Hints, Read Repair, Metrics expained & Scylladb mark

Mysql 使用 B+ tree 這種數據結構保存數據,Cassandra 使用 LSM tree。其結果就是 Cassandra 的刪除操作也變成了一種寫入操作,只不過寫入的是一個 tomb, 而真正的刪除,在 compacti

原创 openssl cmd line AES encrypt iv and key accept only hex format!!!

如下所示, iv 和 key 的 size 都是 128bit (16 byte),但是需要轉換成十六進制傳入 openssl: echo -ne "Hello, World!" | openssl aes-128-cbc -e

原创 MySQL InnoDB Cluster + MySQL Router 8 + Async replication

MySQL 可擴展的 InnoDB 方案: 在同一機房,或者鄰近機房至少3臺機器組成 InnoDB Cluster(網絡連接較好) 在網絡連接較差的機房使用傳統的 Master + Slave 異步 Replication, 其中

原创 http & Restfulapi encryption,如何確保獲取的數據沒有被篡改。

由於部署和性能如果不能採用 https, 可以使用 hybrid encryption 保證數據不被串改(不能防中間人攻擊,也不能防止數據的泄漏——除非採用白名單)。 hybrid encryption: client—> se

原创 gdb core dump

https://cand-w18.unexploitable.systems/l/lab02/note-on-gdb.txt check the build ID of exe: readelf -n /path/to/binar

原创 關於如何使用 linux sendemail 配置 163 郵箱發送郵件通知

下載 或 安裝 smtp client: sudo apt install sendemail 或者: wget http://caspian.dotconf.net/menu/Software/SendEmail/sendE

原创 ubuntu 安裝 ss 和 proxychains

1 安裝 ss apt-get install shadowsocks 2 配置 vim /etc/shadowsocks/config.json { "server":"xxx.xxx.xxx.xxx", "s