diff options
author | antirez <antirez@gmail.com> | 2014-05-08 12:20:38 +0200 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2014-05-08 12:38:32 +0200 |
commit | 7c6b8ec6fa00fce7f0ca3a61602911750bf70ab5 (patch) | |
tree | 5127a7df3ab76d16618687c1bb3d26d1b3fe5d9d | |
parent | 19f735ce42a0612e6425c3872a1c2de70a063af7 (diff) | |
download | redis-freelist.tar.gz |
DEBUG embstr-classes added.freelist
-rw-r--r-- | src/debug.c | 12 |
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); |