1048576 Hows, 2097152 Wheres, And 8388608 Whys

記憶體錯誤檢查工具 Address Sanitizer 介紹

在 C/C++ 程式中,存取越界或 use-after-free 類型的記憶體錯誤是很常見的 bug ,除了透過良好的習慣跟 design pattern 可以手工避免之外,也有一些工具在編譯過程或執行時期進行自動化的檢查。最近看到了 Google 在 2012 年發表 Address Sanitizor (簡稱 ASAN)的論文,整理一下使用方法還有論文裡面介紹 的 ASAN 實作。...

在 shell 上快速架設 HTTP server 的方法:Python, nc, socat

架設測試用的 HTTP server 有幾種方法,直接裝標準的 HTTP server 軟體需要寫設定檔,用 Python 或 Golang 直接套框架寫對一些簡單的需求也太慢了。 HTTP 也是標準的網路協定,因此一些設計來在 shell 上使用的網路測試工具就剛好可以用來架簡單的 HTTP server 。這篇文章整理了幾種我自己會使用的方法和情境。...

Proxmox VE 6.x -> 8.1 驚險升級過程紀錄

PVE 太久沒升級,一升上去就作死手殘好幾步差點掉一堆資料。沒有技術內容的分析,純粹作為以後警惕。...

鍵盤排列轉換測試心得(一)

近期嘗試了練習不同的英文鍵盤排列,整理一些練習過程還有一些中文使用者特有的適應過程。...

最小的 Root Filesystem 需要哪些東西

編譯完 Linux kernel 在 QEMU 中跑起來之後,完整啟動後遇到的第一個錯誤應該會是 Unable to mount root fs ,從解決這個錯誤到進入一個可以執行的 shell 其實不會太遠,接下來就建立一個可以讓 QEMU 上的 Linux 執行 shell 的磁碟 image...

怎麼認識 tensor (一)

以前覺得張量這個名字很酷,但各種介紹文章在一開始都看不懂,希望可以寫一系列的文章給跟當時的我一樣的人。...

在 Linux 上不使用 poweroff, reboot 指令關機以及重新開機的方法

最近遇到看似磁碟損壞造成大部分指令回傳 Input/output error 無法使用的情況,包含想要嘗試重新開機的指令,這時可以利用 Linux 內建的 SysRq 機制來完成。...

使用 Xdebug 偵錯伺服器上的 PHP 程式

有天發現自己的 Nextcloud 界面沒辦法登入了,伺服器的 log 內容又太簡潔找不到原因,除了用 echo 大法二分尋找可能的錯誤點或變數內容之外,使用 Xdebug 可以用來對本地或伺服器上的 PHP 程式進行單步執行的偵錯...

Linux 中普通檔案的 async IO API:Linux AIO 基本使用

先前介紹的 POSIX AIO 只有做到執行讀寫操作的 process 不會在讀寫時阻塞,如果要讓 kernel 在完成後通知 process 的話,還是需要核心的協助。本文介紹 Linux 提供的 AIO 界面來達成這項任務...

能對普通檔案做 async IO 嗎?跨平台 POSIX AIO 介紹與基本使用

在普通檔案的讀寫中,一般在網路程式裡會使用到的非同步 IO 通常都是沒辦法直接使用的, POSIX AIO 提供基本的非同步 API 讓一個 process 可以一次發出多個檔案讀寫請求...