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 */
|
/* 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* skin_buffer_alloc(size_t size)
|
||||||
{
|
{
|
||||||
void *retval = NULL;
|
void *retval = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef USE_ROCKBOX_ALLOC
|
#ifdef USE_ROCKBOX_ALLOC
|
||||||
/* 32-bit aligned */
|
/* 32-bit aligned */
|
||||||
size = (size + 3) & ~3;
|
size = (size + 3) & ~3;
|
||||||
|
|
|
@ -27,7 +27,18 @@
|
||||||
#define _SKIN_BUFFFER_H_
|
#define _SKIN_BUFFFER_H_
|
||||||
void skin_buffer_init(char* buffer, size_t size);
|
void skin_buffer_init(char* buffer, size_t size);
|
||||||
/* Allocate size bytes from the buffer */
|
/* 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);
|
void* skin_buffer_alloc(size_t size);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* get the number of bytes currently being used */
|
/* get the number of bytes currently being used */
|
||||||
size_t skin_buffer_usage(void);
|
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