Tue Feb 19 12:01:31 2008 Google Inc. <opensource@google.com>
* google-perftools: version 0.95.1 release (bugfix release) * x86_64 compile-fix: nix pread64 and pwrite64 (csilvers) * more heap-checker debug logging (maxim) * minor improvement to x86_64 CycleClock (gpike) git-svn-id: http://gperftools.googlecode.com/svn/trunk@46 6b5cf1ce-ec42-a296-1ba9-69fdba395a50
This commit is contained in:
parent
8a0a3101bc
commit
a644b4f2d6
|
@ -1,3 +1,10 @@
|
|||
Tue Feb 19 12:01:31 2008 Google Inc. <opensource@google.com>
|
||||
|
||||
* google-perftools: version 0.95.1 release (bugfix release)
|
||||
* x86_64 compile-fix: nix pread64 and pwrite64 (csilvers)
|
||||
* more heap-checker debug logging (maxim)
|
||||
* minor improvement to x86_64 CycleClock (gpike)
|
||||
|
||||
Tue Feb 12 12:28:32 2008 Google Inc. <opensource@google.com>
|
||||
|
||||
* google-perftools: version 0.95 release
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.59 for google-perftools 0.95.
|
||||
# Generated by GNU Autoconf 2.59 for google-perftools 0.95.1.
|
||||
#
|
||||
# Report bugs to <opensource@google.com>.
|
||||
#
|
||||
|
@ -423,8 +423,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
|
|||
# Identity of this package.
|
||||
PACKAGE_NAME='google-perftools'
|
||||
PACKAGE_TARNAME='google-perftools'
|
||||
PACKAGE_VERSION='0.95'
|
||||
PACKAGE_STRING='google-perftools 0.95'
|
||||
PACKAGE_VERSION='0.95.1'
|
||||
PACKAGE_STRING='google-perftools 0.95.1'
|
||||
PACKAGE_BUGREPORT='opensource@google.com'
|
||||
|
||||
ac_unique_file="README"
|
||||
|
@ -954,7 +954,7 @@ if test "$ac_init_help" = "long"; then
|
|||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures google-perftools 0.95 to adapt to many kinds of systems.
|
||||
\`configure' configures google-perftools 0.95.1 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
|
@ -1021,7 +1021,7 @@ fi
|
|||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of google-perftools 0.95:";;
|
||||
short | recursive ) echo "Configuration of google-perftools 0.95.1:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
|
@ -1162,7 +1162,7 @@ fi
|
|||
test -n "$ac_init_help" && exit 0
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
google-perftools configure 0.95
|
||||
google-perftools configure 0.95.1
|
||||
generated by GNU Autoconf 2.59
|
||||
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
|
@ -1176,7 +1176,7 @@ cat >&5 <<_ACEOF
|
|||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by google-perftools $as_me 0.95, which was
|
||||
It was created by google-perftools $as_me 0.95.1, which was
|
||||
generated by GNU Autoconf 2.59. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
|
@ -1904,7 +1904,7 @@ fi
|
|||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='google-perftools'
|
||||
VERSION='0.95'
|
||||
VERSION='0.95.1'
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
|
@ -24092,7 +24092,7 @@ _ASBOX
|
|||
} >&5
|
||||
cat >&5 <<_CSEOF
|
||||
|
||||
This file was extended by google-perftools $as_me 0.95, which was
|
||||
This file was extended by google-perftools $as_me 0.95.1, which was
|
||||
generated by GNU Autoconf 2.59. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
|
@ -24155,7 +24155,7 @@ _ACEOF
|
|||
|
||||
cat >>$CONFIG_STATUS <<_ACEOF
|
||||
ac_cs_version="\\
|
||||
google-perftools config.status 0.95
|
||||
google-perftools config.status 0.95.1
|
||||
configured by $0, generated by GNU Autoconf 2.59,
|
||||
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
# make sure we're interpreted by some minimal autoconf
|
||||
AC_PREREQ(2.57)
|
||||
|
||||
AC_INIT(google-perftools, 0.95, opensource@google.com)
|
||||
AC_INIT(google-perftools, 0.95.1, opensource@google.com)
|
||||
# The argument here is just something that should be in the current directory
|
||||
# (for sanity checking)
|
||||
AC_CONFIG_SRCDIR(README)
|
||||
|
|
|
@ -56,11 +56,9 @@ struct CycleClock {
|
|||
: "=A" (ret) );
|
||||
return ret;
|
||||
#elif defined(__x86_64__) || defined(__amd64__)
|
||||
int64 low, high;
|
||||
__asm__ volatile ("rdtsc\n"
|
||||
"shl $0x20, %%rdx"
|
||||
: "=a" (low), "=d" (high));
|
||||
return high | low;
|
||||
uint32 low, high;
|
||||
__asm__ volatile ("rdtsc" : "=a" (low), "=d" (high));
|
||||
return (static_cast<uint64>(high) << 32) | low;
|
||||
#elif defined(__powerpc__) || defined(__ppc__)
|
||||
// This returns a time-base, which is not always precisely a cycle-count.
|
||||
int64 tbl, tbu0, tbu1;
|
||||
|
|
|
@ -2730,10 +2730,7 @@ struct kernel_statfs {
|
|||
}
|
||||
#if defined(__x86_64__) || \
|
||||
(defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI64)
|
||||
LSS_INLINE _syscall4(ssize_t, pread64, int, f,
|
||||
void *, b, size_t, c, loff_t, o)
|
||||
LSS_INLINE _syscall4(ssize_t, pwrite64, int, f,
|
||||
const void *, b, size_t, c, loff_t, o)
|
||||
/* pread64() and pwrite64() do not exist on 64-bit systems... */
|
||||
LSS_INLINE _syscall3(int, readahead, int, f,
|
||||
loff_t, o, unsigned, c)
|
||||
#else
|
||||
|
|
|
@ -495,7 +495,8 @@ static void RegisterStack(const void* top_ptr) {
|
|||
top - region.start_addr,
|
||||
THREAD_DATA));
|
||||
}
|
||||
} else { // not in MemoryRegionMap, look in library_live_objects
|
||||
// not in MemoryRegionMap, look in library_live_objects:
|
||||
} else if (FLAGS_heap_check_ignore_global_live) {
|
||||
for (LibraryLiveObjectsStacks::iterator lib = library_live_objects->begin();
|
||||
lib != library_live_objects->end(); ++lib) {
|
||||
for (LiveObjectsStack::iterator span = lib->second.begin();
|
||||
|
@ -1224,6 +1225,16 @@ void HeapLeakChecker::IgnoreLiveObjectsLocked(const char* name,
|
|||
RAW_VLOG(5, "Found pointer to %p of %"PRIuS" bytes at %p "
|
||||
"inside %p of size %"PRIuS"",
|
||||
ptr, object_size, object, whole_object, whole_size);
|
||||
if (VLOG_IS_ON(6)) {
|
||||
// log call stacks to help debug how come something is not a leak
|
||||
HeapProfileTable::AllocInfo alloc;
|
||||
bool r = heap_profile->FindAllocDetails(ptr, &alloc);
|
||||
RAW_DCHECK(r, ""); // sanity
|
||||
RAW_LOG(INFO, "New live %p object's alloc stack:", ptr);
|
||||
for (int i = 0; i < alloc.stack_depth; ++i) {
|
||||
RAW_LOG(INFO, " @ %p", alloc.call_stack[i]);
|
||||
}
|
||||
}
|
||||
live_object_count += 1;
|
||||
live_byte_count += object_size;
|
||||
live_objects->push_back(AllocObject(ptr, object_size,
|
||||
|
|
Loading…
Reference in New Issue