stringdups(1) General Commands Manual stringdups(1)

stringdupsIdentify duplicate strings or other objects in malloc blocks of a target process

stringdups [-minimumCount count] [-stringsOnly] [-nostacks] [-callTrees] [-invertCallTrees] pid | partial-executable-name | memory-graph-file

stringdups examines the content of malloc blocks in the specified target process. For all blocks which have the same content, it shows a line with the number of such blocks, their total allocated size (the total size in the malloc heap, not just the specific size of their content), and the average allocated size.

stringdups requires one argument -- either the process ID or the full or partial executable name of the process to examine, or the pathname of a memory graph file generated by leaks. When generating a memory graph with leaks for use with stringdups it is necessary to use the -fullContent argument to include labels describing the contents of memory.

If the MallocStackLogging environment variable was set when the target process was launched, stringdups also displays stack backtraces or call trees showing where all the blocks with a particular grouping of content were allocated.

stringdups gathers the content of blocks of various types including:

count
Only print information for object descriptions which appear at least count times in the target process. The default minimum count is 2. To see all strings in the target process, use 1 or use 'heap <pid> -addresses all'.
Only print information for objects that have string content such as C or Pascal strings, or NSString.
Do not print stack backtraces or call trees even if the target process has the MallocStackLogging environment variable set.
If stack backtraces are available, then by default all the object descriptions for a particular stack backtrace are consolidated together. However if this argument is passed then the output is consolidated by each particular string and a call tree is displayed showing the allocation backtraces of all occurrences of objects with that description. This output can be very lengthy if minimumCount is a low value, because the same call tree may be displayed many times.
Same as -callTrees except that the call trees are printed from hottest to coldest stack frame, so the leaf malloc call appears first.

heap(1), leaks(1), malloc_history(1), vmmap(1), DevToolsSecurity(1)

July 2, 2016 macOS 15.0