다음은 최근 충돌에서 얻은 백 트레이스입니다. fopen 호출을 가리 킵니다. 여기서 무슨 일이 일어나고 있는지 확실하지 않습니다. 장치에 충분한 공간이 있습니다. & 파일이 해당 파일이 아니더라도 NULL을 반환해야합니다.백 트레이스가 충돌을 일으키도록 가리 킵니다
크래시가 의미가 없습니다. 여기
(gdb) bt
#0 0xb788f50e in __open_nocancel() from /tmp/user_20130523143934/x86/lib/tls/libc.so.6
#1 0xb78453e7 in *__GI__IO_file_open (fp=0x814b0e4, filename=0xb78fc1f5 "/init_log.cfg", posix_mode=-2, prot=438, read_write=8, is32not64=0) at fileops.c:233
#2 0xb784555c in _IO_new_file_fopen (fp=0x814b0e4, filename=0xb78fc1f5 "/init_log.cfg", mode=0x1b6 <Address 0x1b6 out of bounds>, is32not64=1) at fileops.c:332
#3 0xb783d519 in __fopen_internal (filename=0xb78fc1f5 "/init_log.cfg", mode=0xb78fc1f3 "r", is32=1) at iofopen.c:93
#4 0xb783d55f in _IO_new_fopen (filename=0xb78fc1f5 "/init_log.cfg", mode=0xb78fc1f3 "r") at iofopen.c:107
#5 0xb78fbe00 in init_setup (app_uuid=1009, mod_uuid=0, hdl=0xfffffffe) at ../init_setup_api.c:1013
#6 0x0805f431 in main (argc=1, argv=0xbffffa64) at .. vpg_agent.c:307
(gdb) frame 5
#5 0xb78fbe00 in init_setup (app_uuid=1009, mod_uuid=0, hdl=0xfffffffe) at ../init_setup_api.c:1013
1013 if ((fp = fopen(MY_FILE, "r")) == NULL) {
(gdb) l
당신의 도움을 주셔서 감사 BT는 것입니다.
추신 : 또 하나, 원격으로 매핑 된 파일 시스템. 그냥 그것에 대해 알게되었습니다. 그럴 수 있습니다.
메모리 손상 가능성이 가장 큽니다 ('fopen'직전 또는 멀티 스레드 응용 프로그램 인 경우). 또는 프로그램에 가상 메모리가 부족할 수도 있습니다. – Inspired
다른 프로세스가 동시에 오류가 발생하여 – vindyz
p를 가리킬 수 있습니다. MY_FILE이 파일 위치를 가리키는 정적 매크로 –