1. 程式人生 > >利用bochs除錯linux 0.11核心

利用bochs除錯linux 0.11核心

此時Bochs除錯系統已經準備好開始執行,CPU執行指標已指向ROM BIOS中地址0x000fffff0處的指令處。其中'<bochs:1>'是命令輸入提示符,其中的數字表示當前的命令序列號。在命令提示符'<bochs:1>'後面鍵入'help'命令,可以列出除錯系統的基本命令。若要了解某個命令的具體使用方法,可以鍵入'help'命令並且後面跟隨一個用單引號括住的具體命令,例如:“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 seg:off - set a virtual address instruction breakpoint
<bochs:3>

為了讓Bochs直接模擬執行到Linux的引導啟動程式開始處,我們可以先使用斷點命令在0x7c00處設定一個斷點,然後讓系統連續執行到0x7c00處停下來。執行的命令序列如下:

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

相關推薦

利用bochs除錯linux 0.11核心

此時Bochs除錯系統已經準備好開始執行,CPU執行指標已指向ROM BIOS中地址0x000fffff0處的指令處。其中'<bochs:1>'是命令輸入提示符,其中的數字表示當前的命令序列號。在命令提示符'<bochs:1>'後面鍵入'help'命令,可以列出除錯系統的基本命令。

Ubuntu 12.10安裝Bochs 2.6, 除錯linux-0.11核心

Linux(ubuntu)安裝bochs ubuntu下安裝bochs Ubuntu 10.04安裝Bochs 2.4.5筆記 bochs的安裝與使用 linux bochs的啟動 本文介紹在SUSE Linux Enterprise Des

學習linux-0.11核心——搭建環境(編譯、除錯bootsec)

前言 本博文是本專欄博文的起點,通過本文的學習,通過qemu虛擬機器將linux-0.11核心跑起來,有了這個可以跑的核心,在有疑問的地方,我們就可以通過除錯的方式來學習核心。 編譯核心 獲取核心程式碼 git clone https://github.com/

ubuntu 12.04編譯及除錯linux-0.11

(更新中.....) 最近開始研究linux-0.11,編譯過程就遇到各種奇葩情況......好不容易編譯通過了....可是還是不能載入執行.... 下面是我學習過程記錄: 1.開始我用gcc-3.2.2-5.i386.rpm編譯linux-0.11, 你也知道rpm包在u

linux-0.11核心深度剖析視訊

大家好,歡迎觀看由BitEye工作室推出的《linux核心深度剖析》系列視訊。 本套視訊將以linux初學者的角度來探討linux0.11核心,之所以選擇linux0.11核心是基於以下幾個原因:

linux 0.11 核心學習 -- head.s

# # 這段程式碼被連線到system模組的最前面,這也是它為什麼稱之為head.s的原因。 # 從這裡開始核心完全執行在保護模式下。head.s採用的是at&t格式的 # 彙編。注意的是程式碼中的賦值方向是從左到右。 # # 這段程式實際上是出於記憶體的絕對地址0開始處。首先是載入各個

Linux-0.11核心原始碼分析系列:記憶體管理get_free_page()函式分析

Linux-0.11記憶體管理模組是原始碼中比較難以理解的部分,現在把筆者個人的理解發表 先發Linux-0.11核心記憶體管理get_free_page()函式分析有時間再寫其他函式或者檔案的:) /*  *Author  : DavidLin  *Date    :

Linux 0.11核心的啟動過程

Linux 0.11核心的啟動過程 一、Image檔案的構成 1.1 Makefile中的相關命令 Linux 0.11的主Makefile檔案中,有如下欄位: tools/build: tools/build.c $(CC) $(CFLAGS) \ -o tools/bu

linux-0.11除錯教程,Bochs-2.1.1配置檔案,精簡版可拷貝,及img檔案製作過程

========================================================================                                 bximage                   Disk Image Creation Tool

Linux核心完全註釋 閱讀筆記:3.5、Linux 0.11目標檔案格式

為了生成核心程式碼檔案,Linux 0.11使用了兩種編譯器。第一種是彙編編譯器as86和相應的連結程式(或稱為連結器)ld86。它們專門用於編譯和連結,執行在實地址模式下的16位核心引導扇區程式bootsect.s和設定程式setup.s。第二種是GNU的彙編器as

linux核心完全解讀(基於0.11核心)》--環境搭建

最近開始閱讀《linux核心完全解讀(基於0.11核心)》,首先是要搭建linux 0.11核心的編譯除錯環境,可以參考下面的文章: http://www.tinylab.org/take-5-minutes-to-build-linux-0-11-experiment-e

利用VS2013構搭linux0.11核心除錯環境

VS2013的下載連結:連結:http://pan.baidu.com/s/1mh7iLfy 密碼:ir2o linux 0.11的工程 連結:http://pan.baidu.com/s/1eRU

linux-0.11摳程式碼-GDB+VMWARE

vmware新建一個虛擬機器,硬碟為0.1G,建立完成後要先啟動一次虛擬機器,此時無任何系統,然後再關閉,應該會多出一個ostest-flat.vmdk這個虛擬磁碟檔案,下面要用到 新建完成後 我的虛擬機器叫OSTest,然後在虛擬機器根目錄下 有個OSTest.vmx配

建立Linux 0.11完整的系統,讓linux 0.11真正轉起來!方便大家學習。 中文版權所有: OldLinux論壇 

為了配合Linux 0.11核心工作原理的學習,本章介紹了利用PC機模擬軟體和在實際計算機上執行Linux 0.11系統的方法。其中包括核心的編譯過程、PC模擬環境下檔案的訪問和複製、引導盤和根檔案系統的製作方法以及Linux 0.11系統的使用方法。最後還說明了如何對核心程

Linux 0.11 系統呼叫的實現機制

Linux 0.11 系統呼叫的實現機制 一、系統呼叫概述     系統呼叫本質上是一種中斷,中斷號為0x80,即128號中斷。通常我們使用的是庫函式,而不是直接使用系統呼叫,這主要是因為庫函式一般都是規定好的,是可以移植的。而系統呼叫的具體子呼叫號可能會發生改變,不同平臺

真正能在windows下編譯的linux 0.11,不是在Cygwin,也不是在虛擬機器裡!

一、簡介  這就是能在windows環境下直接編譯的Linux 0.11了,不是在Cygwin,也不是在虛擬機器裡,而是使用MinGW gcc,這是GNU gcc在Windows下的移植版本.在oldlinux上的論壇看見有許多人在問怎樣在Windows下直接編譯,最佳答

linux-0.11摳程式碼-bootsect

//bootfun.s .global asm_message .global asm_memmove .global asm_readsector .global asm_checkLBA .code16 //extern void asm_memmove(void*

Linux-0.11-Lab: 五分鐘實驗環境

http://www.tinylab.org/project/linux-0-11-lab/專案描述該專案致力於快速構建一個 Linux 0.11 實驗環境,可配合《Linux核心完全註釋》 一書使用。基本特性:包含所有可用的映像檔案: ramfs/floppy/hard d

Linux學習筆記(linux 0.11完全註釋)

第一章:概述 GNU計劃:旨在開發一個類似UNIX並且是自由軟體的完整作業系統。 POSIX標準:是由IEEE和ISO/IEC開發的一簇標準。該標準基於UNIX的實踐和經驗,描述了作業系統的呼叫和服務介面。用來保證編制的應用程式能在原始碼一級上在多個作業系統上移植和執行。

nasm重寫linux-0.11 head.s (博古以通今)

;檔名:followking/boot/head.s;本檔案改寫linux-0.11/boot/head.s,目的是為了體驗整個系統構建的過程。;我是看著趙炯《Linux核心0.11完全註釋》編寫的。不過,我是編寫程式碼,有疑問再看。;我用的nasm的語法格式。我想寫一個作業