Я разрабатываю несколько модулей для проверки подписи с ++ в linux.И я тестирую и отлаживаю его в visual studio 2015. Но для тестирования утечки памяти я не знаю, как его обнаружить.
Сначала я попытался использовать vld.h и crtdbg.h,оба они не могут обнаружить утечку памяти элементов openssl, таких как Bio *.или X509 *.Существуют ли другие инструменты для поддержки обнаружения утечки памяти элементами openssl ??
Конечно, я пытался использовать "int CRYPTO_mem_leaks (Bio *)", но он определен как комментарии, как показано ниже, а в визуальной студии я не знаюсделать их активными.как:
# ifndef OPENSSL_NO_CRYPTO_MDEBUG
# define OPENSSL_mem_debug_push(info) \
CRYPTO_mem_debug_push(info, OPENSSL_FILE, OPENSSL_LINE)
# define OPENSSL_mem_debug_pop() \
CRYPTO_mem_debug_pop()
int CRYPTO_mem_debug_push(const char *info, const char *file, int
line);
int CRYPTO_mem_debug_pop(void);
void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount);
/*-
* Debugging functions (enabled by CRYPTO_set_mem_debug(1))
* The flag argument has the following significance:
* 0: called before the actual memory allocation has taken place
* 1: called after the actual memory allocation has taken place
*/
void CRYPTO_mem_debug_malloc(void *addr, size_t num, int flag,
const char *file, int line);
void CRYPTO_mem_debug_realloc(void *addr1, void *addr2, size_t num,
int flag,
const char *file, int line);
void CRYPTO_mem_debug_free(void *addr, int flag,
const char *file, int line);
int CRYPTO_mem_leaks_cb(int (*cb) (const char *str, size_t len, void *u),
void *u);
# ifndef OPENSSL_NO_STDIO
int CRYPTO_mem_leaks_fp(FILE *);
# endif
int CRYPTO_mem_leaks(BIO *bio);
# endif