作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 gdb 中我可以使用 call
运行函数,但如果我想运行一些额外的程序集怎么办?
最佳答案
在 GCC 5 (1) 之前,我不知道运行任意机器代码的方法,除非您实际将机器代码输入内存然后运行它。
如果你想运行已经在内存中的代码,你可以将指令指针设置为开始,在末尾设置一个断点,然后继续。然后,在断点之后,将指令指针改回其原始值。
但我实际上看不到这个用例。这并不意味着没有,只是你可以通过运行代码来做任何事情,你也可以通过直接修改寄存器、标志、内存等来实现。
例如,命令:
info registers
set $eax = 42
eax
注册到
42
.
set *((char*)0xb7ffeca0) = 4
0xb7ffeca0
您还可以使用相同的方法来存储更广泛的数据类型。
compile code
编译和执行任意代码命令,如文档所示
here .
关于assembly - 如何在gdb中调用程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5480868/
我是一名优秀的程序员,十分优秀!