|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : sb@alkar.net 2:5020/400 04 Apr 2000 11:09:05 To : All Subject : dmalloc --------------------------------------------------------------------------------
Кто-нибудь из присутствующих пользовал dmalloc? Эта такая либа,
которая подменяет стандартные malloc(), free() и т.д., и следит за
использованием памяти в программе.
А вопрос собственно такой. dmalloc матерно ругается когда я в
asprintf() использую вещественные числа. Т.е. вот такой код:
#include <stdlib.h>
#include <stdio.h>
#include <dmalloc.h>
int main() {
char *query = NULL;
asprintf(&query, "%f", 1.11111);
free(query);
dmalloc_shutdown();
exit(0);
}
Вызывает у него вот такую реакцию (с сокращениями):
954831164: 5: Dmalloc version '4.5.1' from 'http://dmalloc.com/'
954831164: 5: flags = 0x14f41d83, logfile './log'
.........................
954831165: 5: dumping not-freed pointers changed since 0:
954831165: 5: not freed: '0x808e048|s1' (24 bytes) from 'ra=0x280cc652'
954831165: 5: total-size count source
954831165: 5: 24 1 ra=0x280cc652
954831165: 5: 24 1 Total of 1
954831165: 5: unknown memory: 1 pointer, 24 bytes
Если по этому адресу устроить trap и потом посмотреть на корку, то
видно, что память хавается где-то внутри asprintf().
Hу и собственно вопрос(ы). Это соответствует действительности, т.е.
asprintf() действительно жрет память, или это dmalloc глючит? И если это не
глюк dmalloc'а, то как это можно побороть?
Да, FreeBSD 3.2, dmalloc 4.5.1, gcc 2.95.1
--- ifmail v.2.15dev4
* Origin: Alkar-Teleport News server (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/1329709775137.html, оценка из 5, голосов 10
|