相关疑难解决方法(0)

获取内存部分信息

有人可以解释一下以下代码是如何工作的吗?

# if   defined(__ELF__)
#  define __SECTION_FLAGS   ", \"aw\" , @progbits"
    /* writable flag needed for ld ".[cd]tors" sections bug workaround) */
# elif defined(__COFF__)
#  define __SECTION_FLAGS   ", \"dr\""
    /* untested, may be writable flag needed */
# endif

asm
(
    ".section .ctors" __SECTION_FLAGS "\n"
    ".globl __ctors_begin__\n"
    "__ctors_begin__:\n"
    ".previous\n"
);
asm /* ld ".[cd]tors" sections bug workaround */
(
    ".section .ctors0" __SECTION_FLAGS "\n"
    ".globl __ctors0_begin__\n"
    "__ctors0_begin__:\n"
    ".previous\n"
);
Run Code Online (Sandbox Code Playgroud)

同样我们得到了__ctors_end__,__ctors0_end__ 析构函数的位置也是这样获得的.在一些ld bug变通方法之后__ctors_begin__,__ctors_end__执行从指针指向的所有函数 .我不知道汇编程序,这个代码对我来说是不可能解释的. …

c c++ assembly

1
推荐指数
1
解决办法
230
查看次数

标签 统计

assembly ×1

c ×1

c++ ×1