- What is ARM DS-5?
- Install
- .config: 建立 kernel config, timer, interrupt, tracers
- *.ko:
- gator:
- gatord:
- download ARM DS-5
- Reference:
2017年11月29日 星期三
[Profiling] DS-5
[Development] using GNU development tools
- SOP
Configure
Build
- universal binary:
- build flag: e.g.
--arch ppc --arch i386
Install
[Node.js] framework: Express
- library
- $npm install express -g
- binary generator
- $npm install express-generator -g
- Usage
- generate template app
- $express --view=ejs sampleExpress
- install dependencies:
- $cd sampleExpress && npm install
- run the app
- $DEBUG=sampleExpress:* npm start
- validate
- jshint
- generate template app
2017年11月25日 星期六
[Kernel] Linux kernel debug
- 技巧
- 用 printk dump messages to console
- 簡單好用, 行為類似 printf, 不過這會改變 kernel行為 (例如: 執行速度變慢, 使得 race condition 行為不一致)
- 可同時更改 ring buffer size (更改 kernel boot parameter: log_buf_len), 避免 log的訊息被裁斷
- 更改 log level, 預設為 KERN_WARNING, e.g. 開啟所有 log: , 並刪除 boot parameters: quiet, splash (runtime 查看 boot parameters:
- 用 gdb
- disassemble function codes
-
gdb vmlinux
(gdb) dissemble functionName - locate core dump:
gdb crashed_function_obj, e.g. gdb sd.o
(gdb) list *(backtrace_func_shown+offset), e.g. list *(sd_remove+0x20
- 用 objdump
objdump -SdCg sample.o
- ToDo: add2line 指令介紹, ELF 格式介紹, study Kernel Debugging
- Reference
cat /proc/cmdline
)echo 7 > /proc/sys/kernel/printk
訂閱:
文章 (Atom)