Add a simple perl script to display info about what is allocating skin buffer.
To use it enable DEBUG_SKIN_ALLOCATIONS in skin_buffer.h and pipe the rockboxui output to the script git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30597 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
d7372533d0
commit
7e44438936
3 changed files with 50 additions and 0 deletions
|
@ -98,9 +98,17 @@ void skin_buffer_init(char* buffer, size_t size)
|
|||
}
|
||||
|
||||
/* Allocate size bytes from the buffer */
|
||||
#ifdef DEBUG_SKIN_ALLOCATIONS
|
||||
void* skin_buffer_alloc_ex(size_t size, char* debug)
|
||||
{
|
||||
void *retval = NULL;
|
||||
printf("%d %s\n", size, debug);
|
||||
#else
|
||||
void* skin_buffer_alloc(size_t size)
|
||||
{
|
||||
void *retval = NULL;
|
||||
#endif
|
||||
|
||||
#ifdef USE_ROCKBOX_ALLOC
|
||||
/* 32-bit aligned */
|
||||
size = (size + 3) & ~3;
|
||||
|
|
|
@ -27,7 +27,18 @@
|
|||
#define _SKIN_BUFFFER_H_
|
||||
void skin_buffer_init(char* buffer, size_t size);
|
||||
/* Allocate size bytes from the buffer */
|
||||
|
||||
/* #define DEBUG_SKIN_ALLOCATIONS */
|
||||
|
||||
#ifdef DEBUG_SKIN_ALLOCATIONS
|
||||
#define FOO(X) #X
|
||||
#define STRNG(X) FOO(X)
|
||||
#define skin_buffer_alloc(s) skin_buffer_alloc_ex(s, __FILE__ ":" STRNG(__LINE__))
|
||||
void* skin_buffer_alloc_ex(size_t size, char* str);
|
||||
#else
|
||||
void* skin_buffer_alloc(size_t size);
|
||||
#endif
|
||||
|
||||
|
||||
/* get the number of bytes currently being used */
|
||||
size_t skin_buffer_usage(void);
|
||||
|
|
31
lib/skin_parser/skin_buffer_debug.pl
Executable file
31
lib/skin_parser/skin_buffer_debug.pl
Executable file
|
@ -0,0 +1,31 @@
|
|||
#!/usr/bin/perl
|
||||
# __________ __ ___.
|
||||
# Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
# \/ \/ \/ \/ \/
|
||||
# $Id$
|
||||
#
|
||||
|
||||
%allocs = ();
|
||||
|
||||
while (<>) {
|
||||
if (/([0-9]*) (.*)$/) {
|
||||
$key = $2;
|
||||
$value = $1;
|
||||
if (exists $allocs{$key}) {
|
||||
$val = $allocs{$key}[0];
|
||||
$count = $allocs{$key}[1];
|
||||
$allocs{$key} = [$value + $val, $count+1]
|
||||
} else {
|
||||
$allocs{$key} = [$value, 1]
|
||||
}
|
||||
}
|
||||
}
|
||||
print "Count\tTotal cost\tLine\n";
|
||||
for my $key ( keys %allocs ) {
|
||||
$val = $allocs{$key}[0];
|
||||
$count = $allocs{$key}[1];
|
||||
print "$count\t$val\t$key\n";
|
||||
}
|
Loading…
Reference in a new issue