簡體   English   中英

本地時間()中的malloc()段錯誤?

[英]malloc() seg fault in localtime()?

這是紐約堆棧

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    

這是令人反感的代碼..

void Send_Trace(const char const *Trace_Text, ...)
{
   time_t time_now = time(NULL);
   tm = *localtime(&time_now);

它通常工作正常,但偶爾會拋出上面顯示的段錯誤。

有任何想法嗎?

有任何想法嗎?

mallocfree內部崩潰的情況,在99.999%的情況下是其他地方較早的堆損壞的結果。

這可能導致隨后的崩潰在堆損壞的例子malloc :呼吁free在非分配的內存,呼吁free一些指針兩次,溢或下溢堆分配的緩沖區,等等等等。

查找此類錯誤的最快方法是: valgrind (如果在您的平台上可用)或AddressSanitizer (在Clang和GCC的最新版本中實現)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM