在程序集(att)中调用者的被调用函数释放分配的空间

时间:2015-04-21 09:02:34

标签: assembly att

我是新来的,所以请耐心等待! ;)

我正在尝试在汇编程序上返回一个字符串。我在堆栈上有字符串,正确终止。

然后我movl %esp%eax并返回该功能。 我的想法是从c函数调用它并使用这样的汇编程序函数:

extern char* getthestring (void);

int main ()
{
char *m;
m=getthestring();
printf ("The string is %s", *m);
free (m);
return 0;
}

我遇到了分段错误错误,我无法调试它,因为gdb给了我这个:

Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00000001 in ?? ()

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

正如@jester指出的那样,我正在尝试返回局部变量,这是一个禁忌。