Assembly 跳转表的格式
我正在读一个关于跳台课程的例子。他们称之为Assembly 跳转表的格式,assembly,gdb,jump-table,Assembly,Gdb,Jump Table,我正在读一个关于跳台课程的例子。他们称之为gdbx/8g0x123456 结果输出如下所示: 0x123456 0x000000000000134234 0x0000000000005f424 0x123487 0x0000000000001dd1ac 0x000000000000ef327 我认为跳转表将地址映射到它应该执行的代码的地址。那么为什么有3列(不应该是2列吗?) 那么为什么有3列(不应该是2列吗?) 您没有粘贴真实的GDB输出,它看起来像: 0x12345
gdbx/8g0x123456
结果输出如下所示:
0x123456 0x000000000000134234 0x0000000000005f424
0x123487 0x0000000000001dd1ac 0x000000000000ef327
我认为跳转表将地址映射到它应该执行的代码的地址。那么为什么有3列(不应该是2列吗?)
那么为什么有3列(不应该是2列吗?)
您没有粘贴真实的GDB输出,它看起来像:
0x123450 0x000000000000134234 0x0000000000005f424
0x123460 0x0000000000001dd1ac 0x000000000000ef327
(第一列不同)。在编程中,细节很重要
如果将终端变窄,则会得到2列,如下所示:
0x123450 0x000000000000134234
0x123458 0x0000000000005f424
0x123460 0x0000000000001dd1ac
0x123468 0x000000000000ef327
正如KerrekSB所建议的,阅读GDB手册以了解
x
的作用。提示:第一列其实并不重要——它是表本身的存储位置。您是否阅读过gdb手册以了解x
的作用?