GDB에서 info f 명령어의 오류에 대해서 궁금합니다.

diki의 이미지

unix에서 사용하는 유틸리티를 배워보기 위해서,
"유닉스·리눅스 프로그래밍 필수 유틸리티"라는 책을 보고있는 중입니다.

다름이 아니고, gdb사용 명령어 중에서, "info f 변수" 라는 명령어가 있는데,
"info f 변수"를 실행하면, gdb에서 오류 메시지를 띄웁니다.

사용 환경은, debian linux 2.6.18-5버전의 커널을 사용중이고,
GDB는 6.4.90 버전을 사용중입니다.

소스 코드는 아래와 같고,

#include <stdio.h>
 
//void lovecall();
 
char *getname()
{
        char name[128];
 
        printf("Input name : ");
        scanf("%s", name);
 
        return name;
}
 
int main()
{
        char *str;
 
        str = getname();
        printf("I like you.\n");
        printf("%s\n", str);
        //lovecall();
 
        return 0;
}

gdb에서 하는 오류 메시지는 아래와 같습니다.

(gdb) <span>info f name</span>
Stack frame at 0xbf98d370:
 eip = 0x0; saved eip
/build/buildd/gdb-6.4.90.dfsg/gdb/dwarf2-frame.c:739: internal-error: dwarf2_frame_cache: Assertion `fde != NULL' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n) n
 
/build/buildd/gdb-6.4.90.dfsg/gdb/dwarf2-frame.c:739: internal-error: dwarf2_frame_cache: Assertion `fde != NULL' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Create a core file of GDB? (y or n) n

혹시 제가 잘못 사용하는 것인지,
혹은 info f 를 사용하는 위치가 따로 있는지 고수님들의 조언 부탁드립니다.

[+] debian 2.6.8 커널에 gdb 6.3에서도 같은 오류 메시지를 출력하고,
[+] solaris 5.8에 gdb 6.2에서는 제대로 동작하는 것 같네요.