问题标签 [simics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
116 浏览

simics - Simics 使用 SMM 吗?

我想了解 QSP-x86 项目是否在模拟 SMM。我在 GUI 调试器的可用寄存器/内存中没有看到任何东西,这表明我有办法查看 SMRAM / SMI 处理程序代码。因此,我想知道是否可以使用它来调试一些 SMM 代码。

我找到了一个页面,上面写着“Simics 快速启动平台是一个基于 Intel 的平台,它从基于 TianoCore 的启动......”,那么 Simics QSP 源代码是否可以在某处获得?或者它只是 EDK2/UDK 的一个特殊版本?如果是这样,哪个构建以及如何构建它?(因为如果它只是一个我可以摆弄的特定 TianoCore 构建,那会让我的生活更轻松。)

0 投票
1 回答
40 浏览

simics - 当反汇编视图显示代码运行 64 位时,为什么 Simics 寄存器窗口显示 32 位寄存器?

我在 2021.24 Simics 上,我刚刚用“run-command-file targets\qsp-x86\firststeps.simics”启动了 sim,然后运行,然后停止。当我查看 CPU 寄存器窗口时,我看到下面的 32 位寄存器而不是 64 位。这是一个错误吗?执行 64 位代码时,寄存器视图不应该显示 64 位寄存器吗?或者至少有一个 UI 选项来强制这种情况?

32位寄存器

0 投票
1 回答
29 浏览

simics - 有没有办法在 Simics 2021.24 中更改为基于 PCH 的模拟?

这个问题:我如何使用“Simics Training”和“QSP CPU”包?回答了如何更换CPU。但是我尝试了通过字符串搜索的相同步骤来尝试找到默认北桥/南桥的替代方案,但我没有看到其他选项。我也没有看到任何更改为基于 PCH 的系统的方法。

有没有办法在 Simics 2021.24 中更改为基于 PCH 的模拟?

0 投票
1 回答
26 浏览

simics - 有没有办法在 Simics 中保存窗口布局?

我不想每次重新运行 simics.bat 时都重新排列我的窗口。我尝试保存一个检查点,但是当它恢复时似乎并没有将窗户保持在原位。有没有办法保存窗口布局?

0 投票
2 回答
52 浏览

simics - 是否可以在 simics 中看到 smbase?

这篇文章向我展示了如何在 SMM 中查看内容。而且我注意到 Simics 显示了其他通常“隐藏”的寄存器,例如段描述符阴影值,它们只能间接更新。那么是否可以在 Simics 中看到“smbase”寄存器?

0 投票
3 回答
81 浏览

simics - Simics 使用的 BIOS 文件在磁​​盘的哪个位置?

(我看到我之前的一篇文章实际上并没有回答“simics 使用的 BIOS 文件在哪里?”这个问题,所以我重命名了上一篇文章,并将这个问题拉出来,让它在这里独立。)

我可以通过从一开始就单步执行调试器来查看默认“targets\qsp-x86\firststeps.simics”调用的 BIOS 代码。但是,如果我想查看完整的二进制文件,是否有可以查看的特定文件?

0 投票
1 回答
44 浏览

simics - 为什么 Simics bt / stack-trace 命令返回“无当前调试对象”?

我运行 C:\Users\io\simics-projects\my-simics-project-1>simics.bat targets\qsp-x86\firststeps.simics

然后我运行“运行”并让系统一直运行到清晰的 linux shell 提示符。然后我运行“停止”来暂停模拟。但我收到“没有当前调试对象”的错误。我认为一个简单的堆栈跟踪将简单地跟随堆栈上的 %rbp 帧指针并显示那里的内容。为什么不是?

(我也刚刚注意到,当我尝试“退出”时也会发生同样的情况。我想再一次,我认为会简单地逐步执行指令,直到它遇到“ret”......)

0 投票
1 回答
37 浏览

simics - 有没有办法调整 Simics 内存窗口显示粒度?

我想以 32 位块显示内存,并在“调试 - > 内存内容”UI 窗口中解决小字节序,而不是仅显示 8 位块。这可能吗?

(我知道我可以通过 CLI 中的 x 来做到这一点,但在某些情况下,我更喜欢轻松地拥有一个自我更新的 GUI 视图。)

0 投票
1 回答
43 浏览

simics - 为什么 trace-msr 和 break-msr 都不显示 Simics 中 msr_ia32_smbase 的更改?

我尝试了多种方法来中断对 smbase 的写入。首先我试过

但是当我运行时,它会永远运行而不会中断。

然后我试图闯入 SMM,然后只跟踪它的访问,但这显示没有命中。

然后我想可能是 SMM 退出中断掩盖了写入,所以我尝试在 SMM 入口上设置一个中断,然后中断所有MSR 写入并让它继续。但在下一次进入 SMM 之前,它没有显示任何中断。

所以在下面你可以具体看到 msr_ia32_smbase 肯定是在 SMM 的第一次退出之后被写入的。但是,即使从 SMM 中运行,似乎也没有任何跟踪或中断功能表明这一点。那么这只是不支持的功能吗?

ps 我认为 break-msr 的帮助有一个复制粘贴错误,因为它说“寄存器参数指定应该跟踪哪个段寄存器”。trace-msr 正确地说明了特定于模型的寄存器

0 投票
1 回答
56 浏览

simics - Simics 2021.24 中的“step-out”/“step-over-instruction”是否被破坏?

在 Simics 2021.24 中,Step-out 似乎被打破了。我做了“启用调试器”,但它仍然不起作用。请看下面:

同样,“越过指令”似乎并没有越过呼叫,而是进入它们……

所以你可以看到它被调用到设置 rax 的位置,而不是越过调用。