示例#1
0
void *
xrealloc_debug (void *ptr, size_t newsize, const char *source_file, int source_line)
{
  void *newptr = xrealloc_real (ptr, newsize);
  if (!ptr)
    {
      ++malloc_count;
      register_ptr (newptr, source_file, source_line);
    }
  else if (newptr != ptr)
    {
      unregister_ptr (ptr);
      register_ptr (newptr, source_file, source_line);
    }
  return newptr;
}
示例#2
0
char *
xstrdup_debug (const char *s, const char *source_file, int source_line)
{
  char *copy = xstrdup_real (s);
  ++malloc_count;
  register_ptr (copy, source_file, source_line);
  return copy;
}
示例#3
0
void *
xmalloc_debug (size_t size, const char *source_file, int source_line)
{
  void *ptr = xmalloc_real (size);
  ++malloc_count;
  register_ptr (ptr, source_file, source_line);
  return ptr;
}
示例#4
0
void *debugging_calloc(size_t numb,
                       size_t size,
                       const char *source_file,
                       int source_line)
{
    void *ptr = checking_calloc(numb, size);

    pthread_mutex_lock(&s_regptr_mutex);
    ++malloc_count;
    malloc_size += (numb * size);
    register_ptr(ptr, numb*size, source_file, source_line);
    pthread_mutex_unlock(&s_regptr_mutex);

    return ptr;
}
示例#5
0
char *debugging_strdup(
        const char *s,
        const char *source_file,
        int source_line)
{
    char *copy = checking_strdup(s);
    size_t size = strlen(copy) + 1;

    pthread_mutex_lock(&s_regptr_mutex);
    ++malloc_count;
    malloc_size += size;
    register_ptr(copy, size, source_file, source_line);
    pthread_mutex_unlock(&s_regptr_mutex);

    return copy;
}