GCC内建函数 __builtin_return_address实现 java returnaddress

内建函数 __builtin_return_address 返回当前函数或其调用者的返回地址,参数

LEVEL 指定在栈上搜索框架的个数,0 表示当前函数的返回地址,1 表示当前函数

的调用者的返回地址,依此类推。例如:

++++ kernel/sched.c

437: printk(KERN_ERR "schedule_timeout: wrong timeout "

438: "value %lx from %p/n", timeout,

GCC内建函数 __builtin_return_address实现 java returnaddress
439: __builtin_return_address(0));

在MSVC下 __builtin_return_address的功能一样可以实现,代码如下:

__declspec (naked) void* __builtin_return_address (int iLevel)

{

__asm

{

push ebx;

mov eax, ebp;

mov ebx, DWORD PTR [esp + 8]; // iLevel

__Next:

test ebx, ebx;

je __break;

dec ebx;

mov eax, DWORD PTR [eax];

jmp __Next;

__break:

mov eax, DWORD PTR [eax + 4];

pop ebx;

ret;

}

}

  

爱华网本文地址 » http://www.aihuau.com/a/25101013/157812.html

更多阅读

EXCEL自定义函数 2013excel自定义函数

在工作中有时会遇到在编写公式时,找不到适合的EXCEL内置函数,或者虽然可以使用内置函数,但会造成公式复杂不易理解,这时就可以考虑使用自定义函数了。 编写自定义函数需要一定的VBA基础,但完成后,就可以像使用内置函数一样方便了,任何人都

bash之printf printf 16进制输出

前几天看到一篇英文的关于bash的printf使用方法,觉得不错,简单的翻译了一下-----这里讲的printf指的是bash的内建命令(bash-builtin),而不是C函数中的printf(),不过它所实现的功能和printf()函数是非常类似的,可以说是echo命令的一个继承和发

countif函数怎么用 countif函数的查找重复

countif函数怎么用——简介要对一列数字进行筛选了,需要筛选出来满足一定条件的数字的个数,那该用什么函数来实现呢?countif函数可以帮您的,现在我来教给大家,countif这个函数到底该怎么用!countif函数怎么用——工具/原料excelcountif

if函数怎么用 sumif函数的使用方法

if函数怎么用——简介Excel中的IF函数用于实现多分支选择结构的实现,是结构化编辑中与顺序、循环并列的一种结构。IF函数的实现方法灵活多样,但是无论其表现多么灵活,只要掌握了其本质用法,其它的扩展用法将会变得简单易行。下面小编将

声明:《GCC内建函数 __builtin_return_address实现 java returnaddress》为网友温凉少年分享!如侵犯到您的合法权益请联系我们删除