亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bochs1.txt

?? 一個(gè)虛擬機(jī)平臺(tái)的介紹bochs是完全模擬硬件的
?? TXT
?? 第 1 頁 / 共 2 頁
字號(hào):
積分 6766
帖子 6938
閱讀權(quán)限 100
注冊(cè) 2003-9-5
來自 上海
狀態(tài) 離線  #4使用道具  發(fā)表于 2004-10-20 22:21  資料  個(gè)人空間  主頁 短消息  加為好友   
集成盤的制作方法


圖14-8 集成盤運(yùn)行界面

14.1.3運(yùn)行集成盤系統(tǒng)
先為集成盤制作一個(gè)簡單的Bochs配置文件bootroot-0.11.bxrc。其中主要設(shè)置是:
floppya: 1_44=bootroot-0.11
然后用鼠標(biāo)雙擊該配置文件運(yùn)行Bochs系統(tǒng)。此時(shí)應(yīng)有如圖14-8所示顯示結(jié)果。

為了方便大家做實(shí)驗(yàn),也可以從下面網(wǎng)址下載已經(jīng)做好并能立刻運(yùn)行的集成盤軟件:
http://oldlinux.org/Linux.old/bochs/bootroot-0.11-040928.zip
22
Linux 0.11內(nèi)核調(diào)試基本方法


14.1 利用bochs調(diào)試內(nèi)核
Bochs具有非常強(qiáng)大的操作系統(tǒng)內(nèi)核調(diào)試功能。這也是本文選擇Bochs作為首選實(shí)驗(yàn)環(huán)境的主要原因之一。有關(guān)Bochs調(diào)試功能的說明參見前面14.2節(jié),這里基于Linux 0.11內(nèi)核來說明Windows環(huán)境下Bochs系統(tǒng)調(diào)試操作的基本方法。
14.1.1 運(yùn)行Bochs調(diào)試程序
我們假設(shè)Bochs系統(tǒng)已被安裝在目錄“C:\Program Files\Bochs-2.1.1\”中,并且Linux 0.11系統(tǒng)的Bochs配置文件名稱是bochsrc-hd.bxrc。現(xiàn)在在包含內(nèi)核Image文件的目錄下建立一個(gè)簡單的批處理文件run.bat,其內(nèi)容如下:
"C:\Program Files\Bochs-2.1.1\bochsdbg" -q -f bochsrc-hd.bxrc
其中bochsdbg是Bochs系統(tǒng)的調(diào)試執(zhí)行程序。運(yùn)行該批處理命令即可進(jìn)入調(diào)試環(huán)境。此時(shí)Bochs的主顯示窗口空白,而控制窗口將顯示以下類似內(nèi)容:
C:\Documents and Settings\john1\桌面\Linux-0.11>"C:\Program Files\Bochs-2.1.1\bo
chsdbg" -q -f bochsrc-hd.bxrc
========================================================================
                       Bochs x86 Emulator 2.1.1
                           February 08, 2004
========================================================================
00000000000i[     ] reading configuration from bochsrc-hd.bxrc
00000000000i[     ] installing win32 module as the Bochs GUI
00000000000i[     ] Warning: no rc file specified.
00000000000i[     ] using log file bochsout.txt
Next at t=0
(0) context not implemented because BX_HAVE_HASH_MAP=0
[0x000ffff0] f000:fff0 (unk. ctxt): jmp f000:e05b             ; ea5be000f0
<bochs:1>
此時(shí)Bochs調(diào)試系統(tǒng)已經(jīng)準(zhǔn)備好開始運(yùn)行,CPU執(zhí)行指針已指向ROM BIOS中地址0x000fffff0處的指令處。其中'<bochs:1>'是命令輸入提示符,其中的數(shù)字表示當(dāng)前的命令序列號(hào)。在命令提示符'<bochs:1>'后面鍵入'help'命令,可以列出調(diào)試系統(tǒng)的基本命令。若要了解某個(gè)命令的具體使用方法,可以鍵入'help'命令并且后面跟隨一個(gè)用單引號(hào)括住的具體命令,例如:“help 'vbreak'”,如下面所示。
<bochs:1> help
help - show list of debugger commands
help 'command'- show short command description
-*- Debugger control -*-
    help, q|quit|exit, set, instrument, show, trace-on, trace-off,
    record, playback, load-symbols, slist
-*- Execution control -*-
    c|cont, s|step|stepi, p|n|next, modebp
-*- Breakpoint management -*-
    v|vbreak, lb|lbreak, pb|pbreak|b|break, sb, sba, blist,
    bpe, bpd, d|del|delete
-*- CPU and memory contents -*-
    x, xp, u|disas|disassemble, r|reg|registers, setpmem, crc, info, dump_cpu,
    set_cpu, ptime, print-stack, watch, unwatch, ?|calc
<bochs:2> help 'vbreak'
help vbreak
vbreak segff - set a virtual address instruction breakpoint
<bochs:3>
為了讓Bochs直接模擬執(zhí)行到Linux的引導(dǎo)啟動(dòng)程序開始處,我們可以先使用斷點(diǎn)命令在0x7c00處設(shè)置一個(gè)斷點(diǎn),然后讓系統(tǒng)連續(xù)運(yùn)行到0x7c00處停下來。執(zhí)行的命令序列如下:
<bochs:3> vbreak 0x0000:0x7c00
<bochs:4> c
(0) Breakpoint 1, 0x7c00 (0x0:0x7c00)
Next at t=4409138
(0) [0x00007c00] 0000:7c00 (unk. ctxt): mov ax, 0x7c0             ; b8c007
<bochs:5>
此時(shí),CPU執(zhí)行到boot.s程序開始處的第1條指令處,Bochs主窗口將顯示出“Boot From floppy...”等一些信息。現(xiàn)在,我們可以利用單步執(zhí)行命令's'或'n'(不跟蹤進(jìn)入子程序)來跟蹤調(diào)試程序了。在調(diào)試時(shí)可以使用Bochs的斷點(diǎn)設(shè)置命令、反匯編命令、信息顯示命令等來輔助我們的調(diào)試操作。下面是一些常用命令的示例:
<bochs:8> u /10                                    # 反匯編從當(dāng)前地址開始的10條指令。
00007c00: (                    ): mov ax, 0x7c0             ; b8c007
00007c03: (                    ): mov ds, ax                ; 8ed8
00007c05: (                    ): mov ax, 0x9000            ; b80090
00007c08: (                    ): mov es, ax                ; 8ec0
00007c0a: (                    ): mov cx, 0x100             ; b90001
00007c0d: (                    ): sub si, si                ; 29f6
00007c0f: (                    ): sub di, di                ; 29ff
00007c11: (                    ): rep movs word ptr [di], word ptr [si] ; f3a5
00007c13: (                    ): jmp 9000:0018             ; ea18000090
00007c18: (                    ): mov ax, cs                ; 8cc8
<bochs:9> info r                                  # 查看當(dāng)前CPU寄存器的內(nèi)容
eax            0xaa55           43605
ecx            0x110001         1114113
edx            0x0              0
ebx            0x0              0
esp            0xfffe           0xfffe
ebp            0x0              0x0
esi            0x0              0
edi            0xffe4           65508
eip            0x7c00           0x7c00
eflags         0x282            642
cs             0x0              0
ss             0x0              0
ds             0x0              0
es             0x0              0
fs             0x0              0
gs             0x0              0
<bochs:10> print-stack                            # 顯示當(dāng)前堆棧的內(nèi)容
   0000fffe [0000fffe]  0000
   00010000 [00010000]  0000
   00010002 [00010002]  0000
   00010004 [00010004]  0000
   00010006 [00010006]  0000
   00010008 [00010008]  0000
   0001000a [0001000a]  0000
...
<bochs:11> dump_cpu                               # 顯示CPU中的所有寄存器和狀態(tài)值。
eax:0xaa55
ebx:0x0
ecx:0x110001
edx:0x0
ebp:0x0
esi:0x0
edi:0xffe4
esp:0xfffe
eflags:0x282
eip:0x7c00
cs:s=0x0, dl=0xffff, dh=0x9b00, valid=1
ss:s=0x0, dl=0xffff, dh=0x9300, valid=7
ds:s=0x0, dl=0xffff, dh=0x9300, valid=1
es:s=0x0, dl=0xffff, dh=0x9300, valid=1
fs:s=0x0, dl=0xffff, dh=0x9300, valid=1
gs:s=0x0, dl=0xffff, dh=0x9300, valid=1
ldtr:s=0x0, dl=0x0, dh=0x0, valid=0
tr:s=0x0, dl=0x0, dh=0x0, valid=0
gdtr:base=0x0, limit=0x0
idtr:base=0x0, limit=0x3ff
dr0:0x0
dr1:0x0
dr2:0x0
dr3:0x0
dr6:0xffff0ff0
dr7:0x400
tr3:0x0
tr4:0x0
tr5:0x0
tr6:0x0
tr7:0x0
cr0:0x60000010
cr1:0x0
cr2:0x0
cr3:0x0
cr4:0x0
inhibit_mask:0
done
<bochs:12>
由于Linux 0.11內(nèi)核的32位代碼是從絕對(duì)物理地址0處開始存放的,因此若想直接執(zhí)行到32位代碼開始處,即head.s程序開始處,我們可以在線性地址0x0000處設(shè)置一個(gè)斷點(diǎn)并運(yùn)行命令'c'執(zhí)行到那個(gè)位置處。
另外,當(dāng)直接在命令提示符下打回車鍵時(shí)會(huì)重復(fù)執(zhí)行上一個(gè)命令;按向上方向鍵會(huì)顯示上一命令。其他命令的使用方法請(qǐng)參考'help'命令。
14.1.2 定位內(nèi)核中的變量或數(shù)據(jù)結(jié)構(gòu)
在編譯內(nèi)核時(shí)會(huì)產(chǎn)生一個(gè)system.map文件。該文件列出了內(nèi)核Image (bootimage)文件中全局變量和各個(gè)模塊中的局部變量的偏移地址位置。在內(nèi)核編譯完成后可以使用前面介紹的文件導(dǎo)出方法把system.map文件抽取到主機(jī)環(huán)境(windows)中。有關(guān)system.map文件的詳細(xì)功能和作用請(qǐng)參見2.10.3節(jié)。system.map樣例文件中的部分內(nèi)容見如下所示。利用這個(gè)文件,我們可以在Bochs調(diào)試系統(tǒng)中快速地定位某個(gè)變量或跳轉(zhuǎn)到指定的函數(shù)代碼處。
...
Global symbols:
  _dup: 0x16e2c
  _nmi: 0x8e08
  _bmap: 0xc364
  _iput: 0xc3b4
  _blk_dev_init: 0x10ed0
  _open: 0x16dbc
  _do_execve: 0xe3d4
  _con_init: 0x15ccc
  _put_super: 0xd394
  _sys_setgid: 0x9b54
  _sys_umask: 0x9f54
  _con_write: 0x14f64
  _show_task: 0x6a54
  _buffer_init: 0xd1ec
  _sys_settimeofday: 0x9f4c
  _sys_getgroups: 0x9edc
...
同樣,由于Linux 0.11內(nèi)核的32位代碼是從絕對(duì)物理地址0處開始存放的,system.map中全局變量的偏移位置值就是CPU中線性地址位置,因此我們可以直接在感興趣的變量或函數(shù)名位置處設(shè)置斷點(diǎn),并讓程序連續(xù)執(zhí)行到指定的位置處。例如若我們想調(diào)試函數(shù)buffer_init(),那么從system.map文件中可以知道它位于0xd1ec處。此時(shí)我們可以在該處設(shè)置一個(gè)線性地址斷點(diǎn),并執(zhí)行命令'c'讓CPU執(zhí)行到這個(gè)指定的函數(shù)開始處,見如下所示。
<bochs:12> lb 0xd1ec                              # 設(shè)置線性地址斷點(diǎn)。
<bochs:13> c                                      # 連續(xù)執(zhí)行。
(0) Breakpoint 2, 0xd1ec in ?? ()
Next at t=16689666
(0) [0x0000d1ec] 0008:0000d1ec (unk. ctxt): push ebx                  ; 53
<bochs:14> n                                      # 執(zhí)行下一指令。
Next at t=16689667
(0) [0x0000d1ed] 0008:0000d1ed (unk. ctxt): mov eax, dword ptr ss:[esp+0x8] ; 8b442408
<bochs:15> n                                      # 執(zhí)行下一指令。
Next at t=16689668
(0) [0x0000d1f1] 0008:0000d1f1 (unk. ctxt): mov edx, dword ptr [ds:0x19958] ; 8b1558990100
<bochs:16>
程序調(diào)試是一種技能,需要多練習(xí)才能熟能生巧。上面介紹的一些基本命令需要組合在一起使用才能靈活地觀察到內(nèi)核代碼執(zhí)行的整體環(huán)境情況。


 
 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久天堂av综合合色蜜桃网| 亚洲欧美日韩中文字幕一区二区三区 | 欧美日韩国产另类不卡| 日韩精品一二三| 欧美一区二区在线看| 精品中文字幕一区二区小辣椒| 久久久五月婷婷| 一本色道**综合亚洲精品蜜桃冫| 亚洲福利视频一区| 欧美极品美女视频| 91麻豆精品国产91久久久久久久久 | 日日夜夜精品视频天天综合网| 日韩精品一区二区三区三区免费| 国产成人综合网站| 亚洲国产欧美在线| 国产免费成人在线视频| 91精品免费在线观看| 成人高清视频免费观看| 久草在线在线精品观看| 亚洲欧洲一区二区三区| 欧美日韩精品欧美日韩精品一综合| 久久精品国产第一区二区三区| 亚洲最快最全在线视频| 久久久99精品免费观看| 26uuu欧美| 日韩女同互慰一区二区| 欧美精品vⅰdeose4hd| 99视频一区二区| 成人av免费在线播放| 国产99久久久精品| 韩国精品主播一区二区在线观看 | 国产成人av自拍| 欧美96一区二区免费视频| 国产精品色一区二区三区| 久久一留热品黄| 欧美电影免费观看高清完整版在线| 欧美精品高清视频| 欧美日韩专区在线| 欧美四级电影网| 欧美片网站yy| 欧美精品1区2区3区| 国产福利一区二区三区| 精品无人区卡一卡二卡三乱码免费卡 | 亚洲福中文字幕伊人影院| 亚洲综合久久av| 亚洲国产精品麻豆| 日日夜夜精品视频免费| 老司机精品视频在线| 国产中文一区二区三区| 免费不卡在线观看| 午夜免费久久看| 丝袜脚交一区二区| 另类综合日韩欧美亚洲| 国产麻豆91精品| hitomi一区二区三区精品| 成人av动漫网站| 成人动漫精品一区二区| 成人一区在线观看| 色就色 综合激情| 91国偷自产一区二区三区成为亚洲经典| 99久久婷婷国产综合精品| 国精品**一区二区三区在线蜜桃 | 色综合久久综合中文综合网| 99综合电影在线视频| 在线不卡免费av| 国产精品久久午夜夜伦鲁鲁| 亚洲色图欧洲色图| 日本 国产 欧美色综合| 成人性视频免费网站| 欧美剧情电影在线观看完整版免费励志电影 | 精品福利av导航| 亚洲视频一二区| 免费在线观看视频一区| 国v精品久久久网| 欧美日韩成人综合在线一区二区 | 91视频91自| 久久综合一区二区| 亚洲国产精品自拍| 久久99精品国产91久久来源| 成人黄色综合网站| 日韩写真欧美这视频| 亚洲私人黄色宅男| 久久99久久99小草精品免视看| 99久久精品国产一区| 欧美久久一区二区| 亚洲国产精品一区二区www在线| 亚洲成av人片| 成人av网在线| 国产视频一区二区在线| 久久精品99国产精品日本| 欧美日韩高清影院| 亚洲综合一二三区| 成人午夜视频在线观看| 91精品国产综合久久精品app| 久久久久亚洲蜜桃| 青青草97国产精品免费观看| www.成人在线| 国产精品午夜在线| www.日韩精品| 国产女人18毛片水真多成人如厕| 蜜乳av一区二区三区| 欧美精品自拍偷拍| 天堂一区二区在线免费观看| 欧美日韩成人在线| 日本成人在线不卡视频| 欧美一区二区精品在线| 久久99精品久久久久久国产越南| 欧美日本一区二区| 亚洲黄色av一区| 福利一区二区在线观看| 国产午夜一区二区三区| 国产一区二区导航在线播放| 亚洲精品在线免费观看视频| 久久精品99久久久| 国产欧美一区二区精品久导航| 蜜桃视频一区二区| 欧美一区二区视频在线观看2020| 亚洲亚洲人成综合网络| 欧美日韩成人高清| 狠狠狠色丁香婷婷综合久久五月| 2023国产精品视频| jlzzjlzz欧美大全| 午夜精品成人在线视频| 欧美一区2区视频在线观看| 国产一区二区三区国产| 亚洲精品一区二区三区99| 成人黄色电影在线| 亚洲天堂精品视频| 欧美精品自拍偷拍动漫精品| 精品一区二区三区免费毛片爱| 欧美高清在线一区二区| 欧美日韩五月天| 国产精品99久久久久| 亚洲妇女屁股眼交7| 欧美成人精品福利| 91美女片黄在线观看91美女| 久久精品国产精品亚洲红杏| 18成人在线观看| 久久这里只有精品首页| 成人黄页在线观看| 亚洲激情av在线| 欧美午夜电影在线播放| 成人精品电影在线观看| 日韩成人免费在线| 亚洲免费av在线| 久久综合九色综合久久久精品综合 | 五月天中文字幕一区二区| 国产精品色婷婷| 日韩一区二区在线播放| 欧美日韩电影一区| 色综合久久中文综合久久牛| 免费看欧美女人艹b| 国产日产精品一区| 欧美mv日韩mv国产| 欧美中文字幕一区| 成人丝袜高跟foot| 激情图片小说一区| 亚洲国产精品一区二区久久| 国产精品动漫网站| 久久亚洲精华国产精华液| 欧美浪妇xxxx高跟鞋交| 欧美性大战xxxxx久久久| 91网站视频在线观看| 国产激情视频一区二区三区欧美| 日韩av不卡在线观看| 五月天一区二区| 丝袜美腿高跟呻吟高潮一区| 亚洲一级二级在线| 亚洲天堂2014| 中文字幕亚洲一区二区va在线| 国产亚洲一本大道中文在线| 欧美不卡一区二区三区四区| 欧美精品丝袜中出| 欧美中文字幕不卡| 91精品婷婷国产综合久久性色| 欧美日韩你懂得| 日韩一级高清毛片| 精品黑人一区二区三区久久| 国产亚洲精品精华液| 亚洲欧美综合在线精品| 亚洲一区二区三区爽爽爽爽爽| 亚洲成在线观看| 午夜激情久久久| 久久精品国产77777蜜臀| 成人少妇影院yyyy| 在线精品亚洲一区二区不卡| 欧美一a一片一级一片| 欧美视频一区在线| 欧美一区二区三区四区五区| 日韩欧美国产综合| 欧美国产丝袜视频| 亚洲综合免费观看高清完整版在线| 亚洲成a人片综合在线| 国产精品中文字幕欧美| 欧美在线影院一区二区| 国产精品理伦片| 国产精品久久久久久户外露出| 亚洲国产美国国产综合一区二区| 久久国产视频网| 在线精品视频小说1|