= 2009-02-01 = * [備忘] 舊的 sarge repository 會留在 http://archive.debian.org/debian/dists/sarge/ * [參考] http://lists.debian.org/debian-user/2008/11/msg02570.html == CGDB == * [參考] http://www.cmlab.csie.ntu.edu.tw/~daniel/linux/cgdb.html {{{ 基本操作方法 * ESC -- switch to source window * i -- switch to GDB mode * spacebar -- 在目前的地方設一個中斷點 (source window mode) * t -- 在目前的地方設一個暫時中斷點 (source window mode) * '-' -- 縮減 source window * '=' -- 增加 source window }}} * [參考] http://vision.twbbs.org/~letoh/blog/2007/04/13/cgdb-curses-gdb/ {{{ }}} * [參考] http://blogkrogh.blogspot.com/2008/05/gdb-xxgdb-ddd.html * kgdb 的介面看起來不錯。cgdb 有中文支援問題?! gdb 也有 ui 界面: {{{ $ gdb -tui 程式碼 }}} == BUGFIX: jfbterm (5) == * (續 [wiki:jazz/08-11-15 08-11-15@GMT-6 BUGFIX: jfbterm (1)]) * (續 [wiki:jazz/08-11-16 08-11-16@GMT-6 BUGFIX: jfbterm (2)]) * (續 [wiki:jazz/08-11-17 08-11-17@GMT-6 BUGFIX: jfbterm (3)]) * (續 [wiki:jazz/09-01-14 09-01-14@GMT+8 BUGFIX: jfbterm (4)]) {{{ #!C #include #include #include #include // include frame buffer header files #include int main(void) { int fbfd = 0 ; // frame buffer file description /* Get device independent unchangeable information about a frame buffer * device and a specific video mode by FBIOGET_FSCREENINFO ioctl. */ struct fb_fix_screeninfo finfo; fbfd = open( "/dev/fb0" , O_RDWR ); if ( !fbfd ) { printf( "Error: cannot open framebuffer device.\n" ); exit(1); } printf("The framebuffer device was opened successfully.\n"); /* Get fixed screen information */ if ( ioctl ( fbfd , FBIOGET_FSCREENINFO , &finfo ) ) { printf("Error reading fixed screen information.\n"); exit(2); } else { printf("Succesfully Read the Fixed Screen Information\n"); } printf("fb_fix_screeninfo.smem_len = %d\n", finfo.smem_len); printf("fb_fix_screeninfo.mmio_len = %d\n", finfo.mmio_len); } }}} * 在 Ubuntu Intrepid 上執行結果 {{{ root@intrepid:~# uname -a Linux intrepid 2.6.27-7-server #1 SMP Tue Nov 4 20:16:57 UTC 2008 x86_64 GNU/Linux root@intrepid:~# ./fbinfo The framebuffer device was opened successfully. Succesfully Read the Fixed Screen Information fb_fix_screeninfo.smem_len = 16777216 fb_fix_screeninfo.mmio_len = 0 }}} * 以下是在 Debian Sarge 上執行結果,值得一提的是 jfbterm 在 2.6.8 核心上可以正常執行。(不過還有字型問題需要調整) {{{ root@wsu-admin:~# uname -a Linux wsu-admin 2.6.8-2-386 #1 Tue Aug 16 12:46:35 UTC 2005 i686 GNU/Linux root@wsu-admin:~# ./fbinfo The framebuffer device was opened successfully. Succesfully Read the Fixed Screen Information fb_fix_screeninfo.smem_len = 65536 fb_fix_screeninfo.mmio_len = 0 }}} {{{ root@wsu-admin:~# jfbterm jfbterm - Kanji on framebuffer console Version 0.4.7 Copyright (C) 2003 Fumitoshi UKAI Copyright (C) 1999-2000 Noritoshi Masuichi This program is based on KON2 Copyright (C) 1992-1996 Takashi MANABE (**) : Configuration file `/etc/jfbterm.conf' .... 略 .... exec : /bin/bash ioctl FBIOGET_CON2FBMAP: Invalid argument color 0 : 0, 0 color 1 : 2a, 2a color 2 : 2a, 2a color 3 : 2a, 2a color 4 : 2a, 2a color 5 : 2a, 2a color 6 : 2a, 2a color 7 : 2a, 2a color 8 : 15, 15 color 9 : 3f, 3f color 10 : 3f, 3f color 11 : 3f, 3f color 12 : 3f, 3f color 13 : 3f, 3f color 14 : 3f, 3f color 15 : 3f, 3f }}} * 以下是在 Debian Etch 上執行結果,有趣的是 jfbterm 0.4.7-7 在 2.6.18 上執行,縱使有 cannot mmap(mmio) : Invalid argument 的錯誤訊息,但仍舊可以正常進入 jfbterm 的環境。 {{{ root@etch:~# uname -a Linux etch 2.6.18-4-686 #1 SMP Wed May 9 23:03:12 UTC 2007 i686 GNU/Linux root@etch:~# ./fbinfo The framebuffer device was opened successfully. Succesfully Read the Fixed Screen Information fb_fix_screeninfo.smem_len = 1920000 fb_fix_screeninfo.mmio_len = 0 }}} {{{ root@etch:~# jfbterm jfbterm - Kanji on framebuffer console Version 0.4.7 Copyright (C) 2003 Fumitoshi UKAI Copyright (C) 1999-2000 Noritoshi Masuichi This program is based on KON2 Copyright (C) 1992-1996 Takashi MANABE (**) : Configuration file `/etc/jfbterm.conf' ... 略 ... exec : /bin/bash color 0 : 0, 0 color 1 : 15, 15 color 2 : 540, 540 color 3 : 555, 555 color 4 : a800, a800 color 5 : a815, a815 color 6 : ad40, ad40 color 7 : ad55, ad55 color 8 : 52aa, 52aa color 9 : 52bf, 52bf color 10 : 57ea, 57ea color 11 : 57ff, 57ff color 12 : faaa, faaa color 13 : fabf, fabf color 14 : ffea, ffea color 15 : ffff, ffff cannot mmap(mmio) : Invalid argument }}} * {{{ file jfbterm set args -e ls show args break fbcommon.c:500 break fbcommon.c:557 break fbcommon.c:566 break term.c:103 break term.c:284 r c c c bt }}} {{{ Breakpoint 4, tterm_final (p=0x6147c0) at term.c:103 (gdb) bt #0 tterm_final (p=0x6147c0) at term.c:103 #1 0x0000000000408adf in sigchld (sig=) at term.c:82 #2 #3 0x00007f5dfc00f433 in select () from /lib/libc.so.6 #4 0x0000000000408873 in tterm_start (p=0x6147c0, tn=, en=) at term.c:192 #5 0x0000000000402cf2 in main (argc=, argv=0x7fff049477f8) at main.c:438 }}} }}}