2017年11月29日 星期三

[Profiling] DS-5


  • What is ARM DS-5?
  • Install
    • .config: 建立 kernel config, timer, interrupt, tracers
    • *.ko:
    • gator:
    • gatord:
    • download ARM DS-5
  • Reference:

[Development] using GNU development tools

  • SOP
    • configure
    • make
    • make install

Configure

Build

  • universal binary: 
    • build flag: e.g.
      --arch ppc --arch i386

Install




  • Reference:

  • [Node.js] framework: Express

  • Install
    • 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

    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 parametersquiet, splash (runtime 查看 boot parameters: cat /proc/cmdline)
          echo 7 > /proc/sys/kernel/printk
      • 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