https://wiki.hydrogenaud.io/index.php?title=Foobar2000:Call_tracking_macros&feed=atom&action=historyFoobar2000:Call tracking macros - Revision history2024-03-28T11:09:00ZRevision history for this page on the wikiMediaWiki 1.22.7https://wiki.hydrogenaud.io/index.php?title=Foobar2000:Call_tracking_macros&diff=19809&oldid=prevDEATH: /* Purpose */2009-11-19T13:47:33Z<p><span dir="auto"><span class="autocomment">Purpose</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 13:47, 19 November 2009</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>= foobar2000 call tracking macros =</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>= foobar2000 call tracking macros =</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>== Purpose ==</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>== Purpose ==</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; 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;"><div>These macros enable you to store calling context information in crash reports. Such information will be primarily useful to you (the developer) when analyzing user-submitted crash reports, as well as will allow better automated tech support messages when your component crashes (telling the user what the crash cause was etc).</div></td><td class='diff-marker'>+</td><td style="color:black; 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;"><div>These macros enable you to store calling context information in crash reports. Such information will be primarily useful to you (the developer) when analyzing user-submitted crash reports, as well as will allow better automated tech support messages when your component <ins class="diffchange diffchange-inline">or some other code that your component interfaces with </ins>crashes (telling the user what the crash cause was etc).</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>It is particularly useful to use these macros when interfacing with third party code, making it more clear what was being done when the problem occurred, even if it the crash itself is not your concern.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>It is particularly useful to use these macros when interfacing with third party code, making it more clear what was being done when the problem occurred, even if it the crash itself is not your concern.</div></td></tr>
</table>DEATHhttps://wiki.hydrogenaud.io/index.php?title=Foobar2000:Call_tracking_macros&diff=19808&oldid=prevDEATH: New page: = foobar2000 call tracking macros = == Purpose == These macros enable you to store calling context information in crash reports. Such information will be primarily useful to you (the devel...2009-11-19T13:14:38Z<p>New page: = foobar2000 call tracking macros = == Purpose == These macros enable you to store calling context information in crash reports. Such information will be primarily useful to you (the devel...</p>
<p><b>New page</b></p><div>= foobar2000 call tracking macros =<br />
== Purpose ==<br />
These macros enable you to store calling context information in crash reports. Such information will be primarily useful to you (the developer) when analyzing user-submitted crash reports, as well as will allow better automated tech support messages when your component crashes (telling the user what the crash cause was etc).<br />
<br />
It is particularly useful to use these macros when interfacing with third party code, making it more clear what was being done when the problem occurred, even if it the crash itself is not your concern.<br />
<br />
== Syntax ==<br />
=== ''TRACK_CODE("my_code_label", my_code)'' ===<br />
<br />
Puts ''my_code'' inside a call path tracking scope. If ''my_code'' crashes, the last segment of logged call path will be ''my_code_label'', eg. <br />
''entry=>app_mainloop=>my_code_label''.<br />
<br />
Example:<br />
TRACK_CODE("this is myMethod() of myClass", obj->myMethod() );<br />
<br />
<br />
=== ''TRACK_CALL_TEXT("my_scope_label")'' ===<br />
<br />
Typically placed at the beginning of a scope. Puts the following code in a call path tracking scope.<br />
<br />
Example:<br />
<br />
void myFunction() {<br />
TRACK_CALL_TEXT("this is myFunction()");<br />
//your code goes here...<br />
{<br />
TRACK_CALL_TEXT("myFunction() inner scope");<br />
//some more code<br />
}<br />
}<br />
<br />
In this example, if the inner scope code crashes, the call path will end with ''this is myFunction()=>myFunction() inner scope''.</div>DEATH