<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://elvis.hcw.ac.at/wiki/index.php?action=history&amp;feed=atom&amp;title=Heapusage</id>
	<title>Heapusage - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://elvis.hcw.ac.at/wiki/index.php?action=history&amp;feed=atom&amp;title=Heapusage"/>
	<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Heapusage&amp;action=history"/>
	<updated>2026-09-10T14:42:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.5</generator>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Heapusage&amp;diff=13958&amp;oldid=prev</id>
		<title>LPutz: fix typo</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Heapusage&amp;diff=13958&amp;oldid=prev"/>
		<updated>2024-01-17T15:33:11Z</updated>

		<summary type="html">&lt;p&gt;fix typo&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:33, 17 January 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l175&quot;&gt;Line 175:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 175:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== use-after-free ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== use-after-free ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ex3-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;userAfterFree&lt;/del&gt;.c:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ex3-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;useAfterFree&lt;/ins&gt;.c:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  #include &amp;lt;stdlib.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  #include &amp;lt;stdlib.h&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>LPutz</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Heapusage&amp;diff=13953&amp;oldid=prev</id>
		<title>TKoenig at 21:36, 16 January 2024</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Heapusage&amp;diff=13953&amp;oldid=prev"/>
		<updated>2024-01-16T21:36:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:36, 16 January 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l9&quot;&gt;Line 9:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 9:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* macOS Big Sur 11.0&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* macOS Big Sur 11.0&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Ubuntu 20.04 LTS&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Ubuntu 20.04 LTS&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;During creation of this documentation it was also successfully tested on:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Ubuntu 22.04.3 LTS&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Alternatives ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Alternatives ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot;&gt;Line 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Electric Fence (https://linux.die.net/man/3/efence)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Electric Fence (https://linux.die.net/man/3/efence)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* mtrace (https://man7.org/linux/man-pages/man3/mtrace.3.html)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* mtrace (https://man7.org/linux/man-pages/man3/mtrace.3.html)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;During creation of this documentation it was also successfully tested on:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Ubuntu 22.04.3 LTS&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Installation ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Installation ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>TKoenig</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Heapusage&amp;diff=13952&amp;oldid=prev</id>
		<title>TKoenig at 21:35, 16 January 2024</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Heapusage&amp;diff=13952&amp;oldid=prev"/>
		<updated>2024-01-16T21:35:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:35, 16 January 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot;&gt;Line 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Electric Fence (https://linux.die.net/man/3/efence)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Electric Fence (https://linux.die.net/man/3/efence)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* mtrace (https://man7.org/linux/man-pages/man3/mtrace.3.html)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* mtrace (https://man7.org/linux/man-pages/man3/mtrace.3.html)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;According to the GitHub documentation, heapusage can be used on Linux and macOS and has been tested on these operating systems:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* macOS Big Sur 11.0&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Ubuntu 20.04 LTS&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;During creation of this documentation it was also successfully tested on:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;During creation of this documentation it was also successfully tested on:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>TKoenig</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Heapusage&amp;diff=13951&amp;oldid=prev</id>
		<title>TKoenig: Alternatives added</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Heapusage&amp;diff=13951&amp;oldid=prev"/>
		<updated>2024-01-16T21:35:07Z</updated>

		<summary type="html">&lt;p&gt;Alternatives added&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:35, 16 January 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l9&quot;&gt;Line 9:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 9:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* macOS Big Sur 11.0&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* macOS Big Sur 11.0&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Ubuntu 20.04 LTS&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Ubuntu 20.04 LTS&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Alternatives ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* AddressSanitizer (https://github.com/google/sanitizers/wiki/AddressSanitizer)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Electric Fence (https://linux.die.net/man/3/efence)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* mtrace (https://man7.org/linux/man-pages/man3/mtrace.3.html)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;According to the GitHub documentation, heapusage can be used on Linux and macOS and has been tested on these operating systems:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* macOS Big Sur 11.0&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Ubuntu 20.04 LTS&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;During creation of this documentation it was also successfully tested on:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;During creation of this documentation it was also successfully tested on:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>TKoenig</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Heapusage&amp;diff=13870&amp;oldid=prev</id>
		<title>LPutz: Created page with &quot;== Summary ==   This documentation describes the usage of heapusage developed by Kristofer Berggren (d99kris) (https://github.com/d99kris/heapusage). With practical examples it is shown how this tool can be used to find memory leaks, double free, use after free and overflows.  == Requirements ==  According to the GitHub documentation, heapusage can be used on Linux and macOS and has been tested on these operating systems: * macOS Big Sur 11.0 * Ubuntu 20.04 LTS  During c...&quot;</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Heapusage&amp;diff=13870&amp;oldid=prev"/>
		<updated>2024-01-14T13:26:03Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Summary ==   This documentation describes the usage of heapusage developed by Kristofer Berggren (d99kris) (https://github.com/d99kris/heapusage). With practical examples it is shown how this tool can be used to find memory leaks, double free, use after free and overflows.  == Requirements ==  According to the GitHub documentation, heapusage can be used on Linux and macOS and has been tested on these operating systems: * macOS Big Sur 11.0 * Ubuntu 20.04 LTS  During c...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
This documentation describes the usage of heapusage developed by Kristofer Berggren (d99kris) (https://github.com/d99kris/heapusage).&lt;br /&gt;
With practical examples it is shown how this tool can be used to find memory leaks, double free, use after free and overflows.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
According to the GitHub documentation, heapusage can be used on Linux and macOS and has been tested on these operating systems:&lt;br /&gt;
* macOS Big Sur 11.0&lt;br /&gt;
* Ubuntu 20.04 LTS&lt;br /&gt;
&lt;br /&gt;
During creation of this documentation it was also successfully tested on:&lt;br /&gt;
* Ubuntu 22.04.3 LTS&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1 - Pre-requisites ===&lt;br /&gt;
&lt;br /&gt;
To use heapusage on Ubuntu, the following pre-requisites need to be installed:&lt;br /&gt;
 sudo apt install git cmake build-essential&lt;br /&gt;
&lt;br /&gt;
To show the source filenames and line-numbers in the call stacks, another pre-requisite can be installed optionally:&lt;br /&gt;
 sudo apt install binutils-dev&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Installing heapusage ===&lt;br /&gt;
&lt;br /&gt;
To install heapusage simply clone the GitHub repository and build it:&lt;br /&gt;
 git clone https://github.com/d99kris/heapusage&lt;br /&gt;
 cd heapusage&lt;br /&gt;
 mkdir -p build&lt;br /&gt;
 cd build&lt;br /&gt;
 cmake ..&lt;br /&gt;
 make -s&lt;br /&gt;
&lt;br /&gt;
Optionally, you can install it in the system:&lt;br /&gt;
 sudo make install&lt;br /&gt;
If it is installed in the system, you can simply run it using &amp;lt;code&amp;gt;heapusage&amp;lt;/code&amp;gt;. More information about using heapusage can be found in the [[#Usage|Usage]] section.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
Heapusage can be used as follows:&lt;br /&gt;
 heapusage [-d] [-m minsize] [-n] [-o path] [-t tools] PROG [ARGS..]&lt;br /&gt;
This parameters can be used:&lt;br /&gt;
* &amp;lt;code&amp;gt;-d&amp;lt;/code&amp;gt; (optional) enables the debug mode.&lt;br /&gt;
* &amp;lt;code&amp;gt;-m &amp;lt;minsize&amp;gt;&amp;lt;/code&amp;gt; (optional) sets the minimum allocation size heapusage is enabled for. For example, using &amp;lt;code&amp;gt;heapusage -t leak -m 50./app&amp;lt;/code&amp;gt; only shows memory leaks larger than or equal to 50 bytes.&lt;br /&gt;
* &amp;lt;code&amp;gt;-n&amp;lt;/code&amp;gt; (optional) disables symbol lookup. This leads to a faster execution time, however less information is shown in the output. You can still see for example how many bytes are leaked, but no longer in which file/function.&lt;br /&gt;
* &amp;lt;code&amp;gt;-o &amp;lt;path&amp;gt;&amp;lt;/code&amp;gt; (optional) sets an output file to write the output to, instead of stderr.&lt;br /&gt;
* &amp;lt;code&amp;gt;-t &amp;lt;tools&amp;gt;&amp;lt;/code&amp;gt; (optional) sets which tools should be used for the analysis. If not specified, the tool &amp;lt;code&amp;gt;leak&amp;lt;/code&amp;gt; is used per default. The possible tools can be found below.&lt;br /&gt;
* &amp;lt;code&amp;gt;PROG&amp;lt;/code&amp;gt; sets the program to be analysed.&lt;br /&gt;
* &amp;lt;code&amp;gt;ARGS...&amp;lt;/code&amp;gt; (optional) are the parameters for the analysed program (PROG).&lt;br /&gt;
&lt;br /&gt;
Furthermore, heapusage can be run using&lt;br /&gt;
 heapusage --help&lt;br /&gt;
 heapusage --version&lt;br /&gt;
to show an overview of the usage or the installed version.&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
As mentioned above, using the &amp;lt;code&amp;gt;-t &amp;lt;tools&amp;gt;&amp;lt;/code&amp;gt; parameters, the tools to be used can be specified.&lt;br /&gt;
The following tools can be used:&lt;br /&gt;
* &amp;lt;code&amp;gt;leak&amp;lt;/code&amp;gt; (default) detects memory allocations which are never free&amp;#039;d.&lt;br /&gt;
* &amp;lt;code&amp;gt;double-free&amp;lt;/code&amp;gt; detects when an already free&amp;#039;d buffer is free&amp;#039;d again.&lt;br /&gt;
* &amp;lt;code&amp;gt;use-after-free&amp;lt;/code&amp;gt; detects when an already free&amp;#039;d buffer is used afterwards.&lt;br /&gt;
* &amp;lt;code&amp;gt;overflow&amp;lt;/code&amp;gt; detects buffer overflows, like when an address beyond the allocated memory is accessed.&lt;br /&gt;
* &amp;lt;code&amp;gt;all&amp;lt;/code&amp;gt; enables all tools.&lt;br /&gt;
&lt;br /&gt;
Multiple tools can be combined by separating them with a comma, like &amp;lt;code&amp;gt;-t leak,double-free&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-t all&amp;lt;/code&amp;gt; is therefore the same as &amp;lt;code&amp;gt;-t leak,double-free,use-after-free,overflow&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
In the following, a simple example for each of the tools is shown. Each of these examples is saved as &amp;lt;code&amp;gt;.c&amp;lt;/code&amp;gt;-file and compiled using &amp;lt;code&amp;gt;gcc &amp;lt;filename&amp;gt;.c -o &amp;lt;output-filename&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
=== leak ===&lt;br /&gt;
ex1-leak.c:&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 void* getPointer(int size) {&lt;br /&gt;
     return malloc(size);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main() {&lt;br /&gt;
     void* p = getPointer(1337);&lt;br /&gt;
     p = getPointer(42);&lt;br /&gt;
     free(p);&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
After compiling this code it is executed using heapusage: &amp;lt;code&amp;gt;heapusage -t leak ./ex1&amp;lt;/code&amp;gt;&lt;br /&gt;
This leads to the following output:&lt;br /&gt;
 ==6367== Heapusage - https://github.com/d99kris/heapusage&lt;br /&gt;
 ==6367== &lt;br /&gt;
 ==6367== HEAP SUMMARY:&lt;br /&gt;
 ==6367==     in use at exit: 1337 bytes in 1 blocks&lt;br /&gt;
 ==6367==   total heap usage: 2 allocs, 79 frees, 1379 bytes allocated&lt;br /&gt;
 ==6367==    peak heap usage: 1379 bytes allocated&lt;br /&gt;
 ==6367== &lt;br /&gt;
 ==6367== 1337 bytes in 1 block(s) are lost, originally allocated at:&lt;br /&gt;
 ==6367==    at 0x00007fc5942aee5c: malloc (humain.cpp:175)&lt;br /&gt;
 ==6367==    at 0x000055c4d3b9d185: getPointer&lt;br /&gt;
 ==6367==    at 0x000055c4d3b9d19d: main&lt;br /&gt;
 ==6367==    at 0x00007fc594029d90: __libc_start_call_main (libc_start_call_main.h:58)&lt;br /&gt;
 ==6367==    at 0x00007fc594029e40: __libc_start_main (libc-start.c:128)&lt;br /&gt;
 ==6367==    at 0x000055c4d3b9d0a5: _start&lt;br /&gt;
 ==6367== &lt;br /&gt;
 ==6367== LEAK SUMMARY:&lt;br /&gt;
 ==6367==    definitely lost: 1337 bytes in 1 blocks&lt;br /&gt;
 ==6367==&lt;br /&gt;
&lt;br /&gt;
It can be seen, that the second pointer initialization of 42 bytes which is free&amp;#039;d again is not shown here, whereas the 1337 bytes are shown as memory leak, since the are allocated and never free&amp;#039;d.&lt;br /&gt;
&lt;br /&gt;
=== double-free ===&lt;br /&gt;
ex2-doubleFree.c:&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 void* getPointer(int size) {&lt;br /&gt;
      return malloc(size);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void free1(void* p) {&lt;br /&gt;
      free(p);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void free2(void* p) {&lt;br /&gt;
      free(p);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main() {&lt;br /&gt;
     void* p = getPointer(1337);&lt;br /&gt;
     free1(p);&lt;br /&gt;
     free2(p);&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
The similar functions &amp;lt;code&amp;gt;free1&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;free2&amp;lt;/code&amp;gt; are used for a better demonstration of the heapusage output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;heapusage -t double-free ./ex2&amp;lt;/code&amp;gt;:&lt;br /&gt;
 ==6438== Heapusage - https://github.com/d99kris/heapusage&lt;br /&gt;
 ==6438== &lt;br /&gt;
 ==6438== Invalid deallocation at:&lt;br /&gt;
 ==6438==    at 0x00007f16a3399f4f: free (humain.cpp:188)&lt;br /&gt;
 ==6438==    at 0x00005648bfc3f1c2: free2&lt;br /&gt;
 ==6438==    at 0x00005648bfc3f1f7: main&lt;br /&gt;
 ==6438==    at 0x00007f16a3029d90: __libc_start_call_main (libc_start_call_main.h:58)&lt;br /&gt;
 ==6438==    at 0x00007f16a3029e40: __libc_start_main (libc-start.c:128)&lt;br /&gt;
 ==6438==    at 0x00005648bfc3f0a5: _start&lt;br /&gt;
 ==6438==  Address 0x5648c0f6a190 is a block of size 1337 free&amp;#039;d at:&lt;br /&gt;
 ==6438==    at 0x00007f16a3399f4f: free (humain.cpp:188)&lt;br /&gt;
 ==6438==    at 0x00005648bfc3f1a3: free1&lt;br /&gt;
 ==6438==    at 0x00005648bfc3f1eb: main&lt;br /&gt;
 ==6438==    at 0x00007f16a3029d90: __libc_start_call_main (libc_start_call_main.h:58)&lt;br /&gt;
 ==6438==    at 0x00007f16a3029e40: __libc_start_main (libc-start.c:128)&lt;br /&gt;
 ==6438==    at 0x00005648bfc3f0a5: _start&lt;br /&gt;
 ==6438==  Block was alloc&amp;#039;d at:&lt;br /&gt;
 ==6438==    at 0x00007f16a3399e5c: malloc (humain.cpp:175)&lt;br /&gt;
 ==6438==    at 0x00005648bfc3f185: getPointer&lt;br /&gt;
 ==6438==    at 0x00005648bfc3f1db: main&lt;br /&gt;
 ==6438==    at 0x00007f16a3029d90: __libc_start_call_main (libc_start_call_main.h:58)&lt;br /&gt;
 ==6438==    at 0x00007f16a3029e40: __libc_start_main (libc-start.c:128)&lt;br /&gt;
 ==6438==    at 0x00005648bfc3f0a5: _start&lt;br /&gt;
 ==6438== &lt;br /&gt;
 ==6438== HEAP SUMMARY:&lt;br /&gt;
 ==6438==     in use at exit: 0 bytes in 0 blocks&lt;br /&gt;
 ==6438==   total heap usage: 1 allocs, 80 frees, 1337 bytes allocated&lt;br /&gt;
 ==6438==    peak heap usage: 1337 bytes allocated&lt;br /&gt;
 ==6438== &lt;br /&gt;
 ==6438== LEAK SUMMARY:&lt;br /&gt;
 ==6438==    definitely lost: 0 bytes in 0 blocks&lt;br /&gt;
 ==6438== &lt;br /&gt;
&lt;br /&gt;
Here it shows an invalid deallocation in the &amp;lt;code&amp;gt;free2&amp;lt;/code&amp;gt; function and the reason for that, because the block was already free&amp;#039;d in the &amp;lt;code&amp;gt;free1&amp;lt;/code&amp;gt; function.&lt;br /&gt;
&lt;br /&gt;
=== use-after-free ===&lt;br /&gt;
ex3-userAfterFree.c:&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int* getIntPointer() {&lt;br /&gt;
     return (int*)malloc(sizeof(int));&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void free1(int* p) {&lt;br /&gt;
     free(p);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void setPointerValue(int* p, int value){&lt;br /&gt;
     *p = value;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main() {&lt;br /&gt;
     int *p = getIntPointer();&lt;br /&gt;
     free1(p);&lt;br /&gt;
     setPointerValue(p, 42);&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;heapusage -t use-after-free ./ex3&amp;lt;/code&amp;gt;:&lt;br /&gt;
 ==6458== Heapusage - https://github.com/d99kris/heapusage&lt;br /&gt;
 ==6458== &lt;br /&gt;
 ==6458== Invalid memory access at:&lt;br /&gt;
 ==6458==    at 0x00007fe4fb042520: __restore_rt (libc_sigaction.c:0)&lt;br /&gt;
 ==6458==    at 0x0000559a8cbc71b2: setPointerValue&lt;br /&gt;
 ==6458==    at 0x0000559a8cbc71ee: main&lt;br /&gt;
 ==6458==    at 0x00007fe4fb029d90: __libc_start_call_main (libc_start_call_main.h:58)&lt;br /&gt;
 ==6458==    at 0x00007fe4fb029e40: __libc_start_main (libc-start.c:128)&lt;br /&gt;
 ==6458==    at 0x0000559a8cbc70a5: _start&lt;br /&gt;
 ==6458==  Address 0x559a8d19b000 is 0 bytes inside a block of size 4 free&amp;#039;d at:&lt;br /&gt;
 ==6458==    at 0x00007fe4fb3e9f4f: free (humain.cpp:188)&lt;br /&gt;
 ==6458==    at 0x0000559a8cbc7199: free1&lt;br /&gt;
 ==6458==    at 0x0000559a8cbc71dd: main&lt;br /&gt;
 ==6458==    at 0x00007fe4fb029d90: __libc_start_call_main (libc_start_call_main.h:58)&lt;br /&gt;
 ==6458==    at 0x00007fe4fb029e40: __libc_start_main (libc-start.c:128)&lt;br /&gt;
 ==6458==    at 0x0000559a8cbc70a5: _start&lt;br /&gt;
 ==6458==  Block was alloc&amp;#039;d at:&lt;br /&gt;
 ==6458==    at 0x00007fe4fb3e9e5c: malloc (humain.cpp:175)&lt;br /&gt;
 ==6458==    at 0x0000559a8cbc717b: getIntPointer&lt;br /&gt;
 ==6458==    at 0x0000559a8cbc71cd: main&lt;br /&gt;
 ==6458==    at 0x00007fe4fb029d90: __libc_start_call_main (libc_start_call_main.h:58)&lt;br /&gt;
 ==6458==    at 0x00007fe4fb029e40: __libc_start_main (libc-start.c:128)&lt;br /&gt;
 ==6458==    at 0x0000559a8cbc70a5: _start&lt;br /&gt;
 ==6458== &lt;br /&gt;
 ==6458== HEAP SUMMARY:&lt;br /&gt;
 ==6458==     in use at exit: 0 bytes in 0 blocks&lt;br /&gt;
 ==6458==   total heap usage: 1 allocs, 79 frees, 4 bytes allocated&lt;br /&gt;
 ==6458==    peak heap usage: 4 bytes allocated&lt;br /&gt;
 ==6458== &lt;br /&gt;
 ==6458== LEAK SUMMARY:&lt;br /&gt;
 ==6458==    definitely lost: 0 bytes in 0 blocks&lt;br /&gt;
 ==6458==&lt;br /&gt;
&lt;br /&gt;
The output looks similar to that of double-free, however in this case it now shows an invalid memory access instead of invalid deallocation. As before, it still shows where the block was free&amp;#039;d before and where it was allocated in the first place.&lt;br /&gt;
&lt;br /&gt;
=== overflow ===&lt;br /&gt;
ex4-overflow.c:&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;string.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 char* getCharBuf(int size) {&lt;br /&gt;
     return (char*)malloc(size);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void setBufferText(char* buf, char* text) {&lt;br /&gt;
     strcpy(buf, text);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main() {&lt;br /&gt;
     char* buf = getCharBuf(16);&lt;br /&gt;
     setBufferText(buf, &amp;quot;0123456789ABCDEF0123456789&amp;quot;);&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;heapusage -t overflow ./ex4&amp;lt;/code&amp;gt;:&lt;br /&gt;
 ==6519== Heapusage - https://github.com/d99kris/heapusage&lt;br /&gt;
 ==6519== &lt;br /&gt;
 ==6519== Invalid memory access at:&lt;br /&gt;
 ==6519==    at 0x00007f978f842520: __restore_rt (libc_sigaction.c:0)&lt;br /&gt;
 ==6519==    at 0x00007f978f98b423: __strcpy_ssse3 (strcpy-ssse3.S:2568)&lt;br /&gt;
 ==6519==    at 0x000055717f4101ae: setBufferText&lt;br /&gt;
 ==6519==    at 0x000055717f4101e1: main&lt;br /&gt;
 ==6519==    at 0x00007f978f829d90: __libc_start_call_main (libc_start_call_main.h:58)&lt;br /&gt;
 ==6519==    at 0x00007f978f829e40: __libc_start_main (libc-start.c:128)&lt;br /&gt;
 ==6519==    at 0x000055717f4100a5: _start&lt;br /&gt;
 ==6519==  Address 0x55717fb4c000 is 0 bytes after a block of size 16 alloc&amp;#039;d at:&lt;br /&gt;
 ==6519==    at 0x00007f978fb7ee5c: malloc (humain.cpp:175)&lt;br /&gt;
 ==6519==    at 0x000055717f410185: getCharBuf&lt;br /&gt;
 ==6519==    at 0x000055717f4101c7: main&lt;br /&gt;
 ==6519==    at 0x00007f978f829d90: __libc_start_call_main (libc_start_call_main.h:58)&lt;br /&gt;
 ==6519==    at 0x00007f978f829e40: __libc_start_main (libc-start.c:128)&lt;br /&gt;
 ==6519==    at 0x000055717f4100a5: _start&lt;br /&gt;
 ==6519== &lt;br /&gt;
 ==6519== HEAP SUMMARY:&lt;br /&gt;
 ==6519==     in use at exit: 16 bytes in 1 blocks&lt;br /&gt;
 ==6519==   total heap usage: 1 allocs, 78 frees, 16 bytes allocated&lt;br /&gt;
 ==6519==    peak heap usage: 16 bytes allocated&lt;br /&gt;
 ==6519== &lt;br /&gt;
 ==6519== LEAK SUMMARY:&lt;br /&gt;
 ==6519==    definitely lost: 16 bytes in 1 blocks&lt;br /&gt;
 ==6519==&lt;br /&gt;
&lt;br /&gt;
This output shows an invalid memory access, however, as opposed to before, this time it shows the error because &amp;lt;code&amp;gt;is 0 bytes after a block of size 16&amp;lt;/code&amp;gt;. Meaning the code tries to access the memory outside of the allocated memory range.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/d99kris/heapusage&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>LPutz</name></author>
	</entry>
</feed>