首页
导航
博客
电子书
算法
众创
代码
随贴
关于我们
您好,欢迎来到码863代码分享网! 请
[登录]
/
[注册]
搜 索
标题:
*
140
字
TAG标签:
(用空格隔开)
30
字
恢复历史版本:
2023-12-27 22:25:58
请选择分类
html
python
javascript
php
sql
c
c++
c#
java
plain
所有人可见
仅自己可见
编辑器:UEditor
编辑器:TinyMCE
编辑器:Editor.md
HTML转MD
HTML转MD2
<h3>linux 编译安装 <a href="https://blog.csdn.net/qq_36393978/article/details/126260487">https://blog.csdn.net/qq_36393978/article/details/126260487</a></h3><h3><br /></h3><h3 style="white-space:normal;">一键安装 sudo apt-get install bochs bochs-x</h3><p><br /></p><h3>执行控制</h3><table><thead><tr class="firstRow"><th>命令</th><th>命令含义</th><th>举例</th></tr></thead><tbody><tr><td>c</td><td>继续执行,命令也可以写成cont或continue</td><td><br /></td></tr><tr><td>s [count]</td><td>执行指定数量的指令,count为数量,默认值是1,命令也可以写成step</td><td>s 2</td></tr><tr><td>s [cpu] [count]</td><td>对于多CPU模拟器,在指定的CPU上执行指定数量的指令,命令也可以写成step</td><td>s 1 5</td></tr><tr><td>s all [count]</td><td>对于多CPU模拟器,在所有CPU上执行指定数量的指令,也可以写成step all</td><td>s all 5</td></tr><tr><td>Ctrl-C 或 Ctrl-D</td><td>对于正在执行的程序,是停止程序执行回到命令行;对于命令行,则是退出模拟器</td><td><br /></td></tr><tr><td>q 或 quit 或 exit</td><td>在命令行中输入该命令,停止程序执行,退出模拟器</td><td><br /></td></tr></tbody></table><h3>断点设置</h3><p>断点设置涉及到段9seg)、偏移(off)、地址(addr)等概念,有如下三种形式:</p><p>十六进制:以0x开头</p><p>十进制:0~9的数字组成,开头数字非0</p><p>八进制:0~7的数字组成,且以0开头</p><table><thead><tr class="firstRow"><th>命令</th><th>命令含义</th><th>举例</th></tr></thead><tbody><tr><td>vb seg:off</td><td>也可以写成vbreak seg:off,表示针对虚拟地址段:偏移=seg:off设置断点</td><td>vb 0x0000:0x7c00</td></tr><tr><td>vb seg:off if "expr"</td><td>也可以写成vbreak seg:off if "expr",表示针对虚拟地址段:偏移=seg:off设置条件断点,条件为"expr"</td><td><br /></td></tr><tr><td>lb addr</td><td>也可以写成lbreak addr,表示针对线性地址addr设置断点</td><td>lb 0x7c00</td></tr><tr><td>lb addr if "expr"</td><td>也可以写成lbreak addr if "expr",表示针对线性地址addr设置条件断点</td><td><br /></td></tr><tr><td>b addr</td><td>也可以写成break addr、pbreak addr、pb addr等形式,针对物理地址addr设置断点</td><td><br /></td></tr><tr><td>info break</td><td>显示当前所有断点的状态</td><td><br /></td></tr><tr><td>bpe n</td><td>使能断点n</td><td><br /></td></tr><tr><td>bpd n</td><td>禁止断点n</td><td><br /></td></tr><tr><td>d n</td><td>也可以写成delete n、del n,删除断点n</td><td><br /></td></tr></tbody></table><h3>内存观测</h3><table><thead><tr class="firstRow"><th>命令</th><th>命令含义</th><th>举例</th></tr></thead><tbody><tr><td>watch r addr</td><td>也可以写成watch reda addr,表示在物理地址addr处插入一个读观测点,当该内存被读取的时候触发该观测点</td><td>watch r 0x7c1b</td></tr><tr><td>watch w addr</td><td>也可以写成watch write addr,表示在物理地址addr处插入一个写观测点,当该内存被写入的时候触发该观测点</td><td><br /></td></tr><tr><td>watch</td><td>显示当前所有内存观测点的状态</td><td><br /></td></tr><tr><td>watch stop</td><td>观测点被触发后的行为:当触发观测点后,暂停模拟器运行,回到命令行等待输入(这也是watch观测点的默认行为)</td><td><br /></td></tr><tr><td>watch continue</td><td>观测点被触发后的行为:当触发观测点后,继续执行</td><td><br /></td></tr><tr><td>unwatch addr</td><td>移除指定物理地址的观测点</td><td><br /></td></tr><tr><td>unwatch</td><td>移除所有的观测点</td><td><br /></td></tr><tr><td>trace-mem on/off</td><td>使能/禁止内存访问跟踪</td><td><br /></td></tr></tbody></table><h3>内存操作</h3><table><thead><tr class="firstRow"><th>命令</th><th>命令含义</th><th>举例</th></tr></thead><tbody><tr><td>x /nuf addr</td><td>按照指定的格式打印线性地址addr中的内容。n、u、f是三个格式选项。<br />n:指定待显示内存的单元数量,单元的大小由u指定<br />u:指定单元的大小,b表示字节、h表示字(2字节)、w表示双字(4字节)、g(8字节)<br />f:指定打印格式,x表示以16进制打印、d表示以十进制打印、u表示以无符号十进制打印、o表示以八进制打印、t表示以二进制打印</td><td>x /16bx 0x7c00<br />表示打印0x7c00地址开始处的16字节内容<br />以16进制的方式打印<br />按照每个字节为一个显示单元,显示单元之间空格</td></tr><tr><td>xp /nuf addr</td><td>与x /nuf addr的区别在于,xp命令打印的是指定的物理地址addr中的内容。</td><td><br /></td></tr><tr><td>setpmem addr datasize val</td><td>将物理地址addr处开始的datasize字节设置为val值</td><td>setpmem 0x7c1b 2 0x4141</td></tr><tr><td>writemem filename addr len</td><td>从指定的线性地址开始,复制指定数量的内存字节数到文件</td><td>writemem file.dat 0x7c1b 16</td></tr><tr><td>crc addr1 addr2</td><td>计算物理地址addr1-addr2之间的crc32值</td><td><br /></td></tr></tbody></table><h3>信息查询</h3><table><thead><tr class="firstRow"><th>命令</th><th>命令含义</th><th>举例</th></tr></thead><tbody><tr><td>r</td><td>列出CPU中的整数寄存器及其内容,该命令也可以写成reg、regs、registers</td><td>r</td></tr><tr><td>fp</td><td>列出所有FPU寄存器及其内容,该命令也可以写成fpu</td><td><br /></td></tr><tr><td>mmx</td><td>列出所有MMX寄存器及其内容</td><td><br /></td></tr><tr><td>sse</td><td>列出所有SSE寄存器及其内容,该命令也可以写成xmm</td><td><br /></td></tr><tr><td>ymm</td><td>列出所有AVX寄存器及其内容</td><td><br /></td></tr><tr><td>sreg</td><td>列出段寄存器及其内容</td><td>sreg</td></tr><tr><td>dreg</td><td>列出调试寄存器及其内容</td><td><br /></td></tr><tr><td>creg</td><td>列出控制寄存器及其内容</td><td><br /></td></tr><tr><td>info cpu</td><td>列出所有CPU的寄存器及其内容</td><td><br /></td></tr><tr><td>info flags</td><td>呈现EFLAGS寄存器的内容</td><td><br /></td></tr><tr><td>info break</td><td>列出所有断点状态信息</td><td><br /></td></tr><tr><td>info tab</td><td>列出页表地址转换表</td><td><br /></td></tr><tr><td>info device</td><td>列出指定设备device的状态</td><td><br /></td></tr></tbody></table><h3>操作CPU寄存器</h3><table><thead><tr class="firstRow"><th>命令</th><th>命令含义</th><th>举例</th></tr></thead><tbody><tr><td>set reg = expr</td><td>将指定的CPU寄存器reg变更为表达式的值,当前只支持通用寄存器和指令寄存器。</td><td>set eax = 2 + 2*2<br />set esi = 2 * eax + ebx</td></tr></tbody></table><h3>其他命令</h3><table><thead><tr class="firstRow"><th>命令</th><th>命令含义</th><th>举例</th></tr></thead><tbody><tr><td>ptime</td><td>打印当前时间(模拟器自从启动后的tick数)</td><td><br /></td></tr></tbody></table><p><br /><br /></p><p><br /></p>
CopyRight 2002~2023 精通2100网 联系邮箱:qqtxt@163.com
版权所有:精通2100网
湘ICP备2023018646号-1
MYSQl共执行 4 个查询,用时 0.0019810199737549 秒,PHP脚本用时 0.004250 秒,占用内存 0.536 MB,Gzip 已启用