Edit Notes - Rearrange, Appendix, Bugfixes.
This commit is contained in:
@@ -39,7 +39,7 @@ Bottles 是由 [bottlesdevs](https://github.com/bottlesdevs) 开发的可视化
|
||||
|
||||
[^lazy_loading]: 经实测发现,单文件 exe 才可以在这种情况下直接在 Bottles 里启动。但凡需要读同级文件、子文件夹的,都需要在 Bottle 里添加快捷方式,并在快捷方式的设置里手动指明工作目录。
|
||||
|
||||
首先需要引入`archlinuxcn`源。具体步骤参见[《Arch 安装流程》](../OS/ArchInstall.md#i-cn-源和-aur-助手),这里不再重复。
|
||||
首先需要引入`archlinuxcn`源。具体步骤参见[《Arch 安装流程》](../Maintenance/ArchInstall.md#i-cn-源和-aur-助手),这里不再重复。
|
||||
接着`sudo pacman -Sy bottles`安装。等待进度跑完,就可以从“应用程序菜单栏”运行了。
|
||||
|
||||
初次运行 Bottles 会弹出一个向导跟你 blabla,无脑下一步即可。
|
||||
|
||||
@@ -92,13 +92,14 @@ int example() {
|
||||
又假设`example()`被 main 函数调用,那么栈帧可能会是这种分布:
|
||||
|地址|...|备注|
|
||||
|-|:--:|-|
|
||||
|0x524|...||
|
||||
|0x520|(`main()`的 EBP)|`example()`栈帧从这里开始|
|
||||
|0x51C|int a = 10|
|
||||
|0x518|int b|
|
||||
|0x514|(空余 8B)|`gcc`编译器要求栈帧大小为 16B 的整数倍|
|
||||
|0x510|(空余 8B)|`gcc`要求栈帧大小为 16B 的整数倍|
|
||||
|0x50C|1024|参数 y|
|
||||
|0x508|10|参数 x,即复制 a 的值|
|
||||
|0x504|调用`eg_sub()`时 EIP 指向的下一指令地址|亦即被`call`压栈、`ret`返回的地址<br>`example()`栈帧到此结束|
|
||||
|0x504|调用`eg_sub()`时 EIP 指向的下一指令地址|亦即被`call`压栈、`ret`返回的地址;<br>`example()`栈帧到此结束|
|
||||
|0x500|(`example()`函数的 EBP)|这里是`eg_sub()`的栈帧了|
|
||||
|...|...||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user