gpt4 book ai didi

c++ - __builtin_return_address 不会将变量作为参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:45:02 34 4
gpt4 key购买 nike

这很令人费解。使用 g++ 4.9.1:

int main()
{
void* r1 = __builtin_return_address(0); // fine
unsigned int foo = 0;
void* r2 = __builtin_return_address(foo); // does not compile
}

返回的错误是error: invalid argument to ‘__builtin_return_address’

文档说这个函数接受一个无符号整数。我知道 __builtin 函数有各种各样的怪异之处,这可能就是生活的样子,但我需要能够为我正在尝试实现的堆栈转储程序使用递增变量来逐步完成这件事。如果它只接受常量参数,那是不可能的。

是否有解决方法或更好的方法?

最佳答案

只需制作您自己的巨大开关/案例或 if/else 树,直至达到您可能需要的级别。您可以使用宏来简化它。

关于c++ - __builtin_return_address 不会将变量作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40598938/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com