For unknown callers we try to get the lowest known address and we
purposely ignore NULL during calculation of the min. But the side
effect is that we also report ffff in the per-DSO address. Better
catch this case and finally accept to report nil. Before it would
report this:
$ socat - /tmp/sock1 <<< "show profiling memory" |grep nil
50000 10
9600000 9440| (nil) [other] unknown(192) [delta=
9590560] [pool=http_txn]
50000 10
9600000 9440| (nil) DSO:other; delta_calls=49990; delta_bytes=
9590560
now it reports this:
$ socat - /tmp/sock1 <<< "show profiling memory" |grep nil
50000 11
9600000 9656| (nil) [other] unknown(192) [delta=
9590344] [pool=connection]
50000 11
9600000 9656| (nil) DSO:other; delta_calls=49989; delta_bytes=
9590344
chunk_appendf(&trash, "%11llu %11llu %14llu %14llu| %16p DSO:%s;",
entry->alloc_calls, entry->free_calls,
entry->alloc_tot, entry->free_tot,
- entry->caller, entry->info ? (const char*)entry->info : "other");
+ entry->caller == (void*)-1 ? 0 : entry->caller, entry->info ? (const char*)entry->info : "other");
if (entry->alloc_tot != entry->free_tot)
chunk_appendf(&trash, " delta_calls=%lld; delta_bytes=%lld",