0
여기에 일반적으로 잘 작동되지만 이따금 위와 SEG 오류가 발생localtime()에서 malloc() seg 오류가 발생 했습니까?
void Send_Trace(const char const *Trace_Text, ...)
{
time_t time_now = time(NULL);
tm = *localtime(&time_now);
..
malloc() at 0xb7dfd333
strdup() at 0xb7e01866
tzset_internal() at 0xb7e2ef68
__tz_convert() at 0xb7e2f26a
localtime() at 0xb7e2d901
Send_Trace() at my_trace.c:265 0x8053373
NY 스택
그리고 여기에 잘못된 코드이다.아이디어가 있으십니까?
여러 스레드에서 호출하고 있습니까? – 2501
Linux를 사용하는 경우 valgrind에서 프로그램을 실행 해보십시오. 아마도, 메모리가 일찍 손상되었으며 valgrind가 이것을 지적 할 수 있습니다. –
임의의 seg 오류가 발생하면 대개 함수 내에서 지역 변수를 사용하고 함수가 끝날 때 다시 사용하려고합니다 (포인터를 내 보냅니다). tm은 무엇입니까? – Alexi