-
-
[求助]请问如何从堆栈中获取调用参数?
-
发表于: 2010-5-7 11:26 3400
-
假设如下:
void c(int i)
{
int x = i;
AnalyzeCallStack(); //分析调用堆栈 分析每个调用函数的参数
}
void b(int i)
{
c(i);
}
void a()
{
b(0);
}
int main()
{
a();
}
1. 一般通过ebp,可以从堆栈中获取调用者地址,再用SymFromAddr之类的可以解析出函数名,但是对于xxx(format,...)这种参数不定函数,无法通过ebp获取函数名,这种该如何处理呢?
2. 如何获取调用函数的参数呢? AnalyzeCallStack()该如何实现? 当用vs调试的时候,就可以看到调用堆栈,并且也有参数,请问是如何实现这样的效果?
void c(int i)
{
int x = i;
AnalyzeCallStack(); //分析调用堆栈 分析每个调用函数的参数
}
void b(int i)
{
c(i);
}
void a()
{
b(0);
}
int main()
{
a();
}
1. 一般通过ebp,可以从堆栈中获取调用者地址,再用SymFromAddr之类的可以解析出函数名,但是对于xxx(format,...)这种参数不定函数,无法通过ebp获取函数名,这种该如何处理呢?
2. 如何获取调用函数的参数呢? AnalyzeCallStack()该如何实现? 当用vs调试的时候,就可以看到调用堆栈,并且也有参数,请问是如何实现这样的效果?
赞赏
他的文章
看原图
赞赏
雪币:
留言: