summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2014-05-08 12:20:38 +0200
committerantirez <antirez@gmail.com>2014-05-08 12:38:32 +0200
commit7c6b8ec6fa00fce7f0ca3a61602911750bf70ab5 (patch)
tree5127a7df3ab76d16618687c1bb3d26d1b3fe5d9d
parent19f735ce42a0612e6425c3872a1c2de70a063af7 (diff)
downloadredis-freelist.tar.gz
DEBUG embstr-classes added.freelist
-rw-r--r--src/debug.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/debug.c b/src/debug.c
index 1869f7553..588d7d951 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -249,6 +249,18 @@ void computeDatasetDigest(unsigned char *final) {
void debugCommand(redisClient *c) {
if (!strcasecmp(c->argv[1]->ptr,"segfault")) {
*((char*)-1) = 'x';
+ } else if (!strcasecmp(c->argv[1]->ptr,"embstr-classes")) {
+ int j;
+ char *buf = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+ "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB";
+
+ for (j = 1; j < 48; j++) {
+ robj *o = createEmbeddedStringObject(buf,j);
+ size_t size = zmalloc_size(o);
+
+ printf("%d %d (%d)\n", j, (int)size, (int)(sizeof(robj)+sizeof(struct sdshdr)+j+1));
+ decrRefCount(o);
+ }
} else if (!strcasecmp(c->argv[1]->ptr,"oom")) {
void *ptr = zmalloc(ULONG_MAX); /* Should trigger an out of memory. */
zfree(ptr);