haiku/docs/userguide/en/applications/debugger.html
Niels Sascha Reedijk c18f9eb4ea User documentation: synchronize userguide from the userguide translator
Change-Id: I9b30ae27658a40b85c67a4c30aaea2b4bf9507f9
2021-07-21 12:54:38 +01:00

124 lines
7.7 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!--
*
* Copyright 2015-2019, Haiku. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Humdinger <humdingerb@gmail.com>
*
-->
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="robots" content="all" />
<title>Debugger</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" type="text/css" href="../../Haiku-doc.css" />
</head>
<body>
<div id="banner">
<div><span>User guide</span></div>
</div>
<div class="nav">
<div class="inner">
<ul class="lang-menu">
<li class="now">English&nbsp;<span class="dropdown-caret">&#9660;</span></li>
<li><a href="../../id/applications/debugger.html">Bahasa Indonesia</a></li>
<li><a href="../../ca/applications/debugger.html">Català</a></li>
<li><a href="../../de/applications/debugger.html">Deutsch</a></li>
<li><a href="../../es/applications/debugger.html">Español</a></li>
<li><a href="../../eo/applications/debugger.html">Esperanto</a></li>
<li><a href="../../fr/applications/debugger.html">Français</a></li>
<li><a href="../../fur/applications/debugger.html">Furlan</a></li>
<li><a href="../../it/applications/debugger.html">Italiano</a></li>
<li><a href="../../hu/applications/debugger.html">Magyar</a></li>
<li><a href="../../pl/applications/debugger.html">Polski</a></li>
<li><a href="../../pt_PT/applications/debugger.html">Português</a></li>
<li><a href="../../pt_BR/applications/debugger.html">Português (Brazil)</a></li>
<li><a href="../../ro/applications/debugger.html">Română</a></li>
<li><a href="../../sk/applications/debugger.html">Slovenčina</a></li>
<li><a href="../../fi/applications/debugger.html">Suomi</a></li>
<li><a href="../../sv_SE/applications/debugger.html">Svenska</a></li>
<li><a href="../../tr/applications/debugger.html">Türkçe</a></li>
<li><a href="../../zh_CN/applications/debugger.html"> 中文 [中文]</a></li>
<li><a href="../../ru/applications/debugger.html">Русский</a></li>
<li><a href="../../uk/applications/debugger.html">Українська</a></li>
<li><a href="../../jp/applications/debugger.html">日本語</a></li>
</ul>
<span>
« <a href="codycam.html">CodyCam</a>
:: <a href="../applications.html#list-of-apps" class="uplink">Applications</a>
:: <a href="deskcalc.html">DeskCalc</a> »
</span></div>
</div>
<div id="content">
<div>
<h2><img src="../../images/apps-images/debugger-icon_64.png" alt="debugger-icon_64.png" width="64" height="64" />Debugger</h2>
<table summary="layout" border="0" cellspacing="0" cellpadding="2">
<tr><td>Deskbar:</td><td style="width:15px;"></td><td><span class="menu">Applications</span></td></tr>
<tr><td>Location:</td><td></td><td><span class="path">/boot/system/apps/Debugger</span></td></tr>
<tr><td>Settings:</td><td></td><td><span class="path">~/config/settings/Debugger settings</span><br />
<span class="path">~/config/settings/Debugger/</span></td></tr>
</table>
<p><br /></p>
<p>The Debugger is an application the common user hasn't much use for. It's targeted at developers to investigate bugs in programs. Sometimes those bugs result in crashes and that is when even end users come into contact with the Debugger. When a program crashes, you're confronted with this alert :</p>
<img src="../images/apps-images/debugger_alert.png" alt="debugger_alert.png" />
<p>It offers four options to react to the crash:</p>
<ul>
<li><p><span class="button">Terminate</span> will clean up after the crashed app but otherwise does nothing further.</p></li>
<li><p><span class="button">Debug</span> will start the Debugger for further investigation.</p></li>
<li><p><span class="button">Save report</span> creates a debug report which is saved as a text file on the Desktop and can be emailed to the developer of the crashed app or attached to a ticket at its bugtracker, if available.<br />
The debug report contains information on your hardware (type of CPU and used memory etc.), the exact version of Haiku and all available information on the state of the system that could be relevant to the crash.</p></li>
<li><p><span class="button">Write core file</span> creates a possibly huge dump of the system's state. Better attach a regular debug report first when submitting a bug report and only provide a core file on request.</p></li>
</ul>
<p>The default action when a crash happens can be configured with a text file <span class="path">~/config/settings/system/debug_server/settings</span>.<br />
The file takes on a driver_settings style format as follows:</p>
<pre>default_action user
executable_actions {
app1 log
/path/app2* debug
}</pre>
<p>Valid values for a default_action are:</p>
<table summary="action values" border="0" cellspacing="0" cellpadding="2">
<tr><td>user</td><td style="width:30px"></td><td>Prompt the user for action.</td></tr>
<tr><td>kill</td><td></td><td>Silently terminate the crashing team.</td></tr>
<tr><td>debug</td><td></td><td>Attach the debugger to the crashing team.</td></tr>
<tr><td>log / report</td><td></td><td>Save a crash report and terminate the team.</td></tr>
<tr><td>core</td><td></td><td>Save a (possibly very large) core file and terminate the team.</td></tr>
</table>
<p>If no default_action is specified, "user" is assumed.</p>
<p>The executable_actions subsection contains individual overrides of the default. These take the form above, where the individual lines can be only a team name, or a path, with wildcards.</p>
<p><br /></p>
<hr />
<p><br /></p>
<p>Describing the usage of the actual Debugger is out of scope for this guide that is addressing the needs of the common user of Haiku. For completeness sake, here's the window that'll come up if you choose the <span class="button">Debug</span> option in the above alert:</p>
<img src="../images/apps-images/debugger.png" alt="debugger.png" />
<p>As you'll quickly see when you start poking around a bit, the Debugger is one of the most complex and sophisticated applications for Haiku. If you're a developer and are used to graphical debuggers on other platforms, many features will be familiar to you.</p>
<p>Below are a few links that may shed some light on the intricacies of Haiku's Debugger. If you have a specific question, you may want to consider posting it on the <a href="http://www.freelists.org/list/haiku-development">development mailing list</a>. If you find more useful resources, please file a <a href="../../../welcome/en/bugreports.html">bugreport</a> with that info.</p>
<table summary="layout" border="0" cellpadding="2" cellspacing="0">
<tr><td class="onelinetop"><a href="https://www.dropbox.com/s/e6gx39r0asc2t8f/DebuggerReferenceManual.pdf?dl=1">Debugger Reference Manual</a></td><td></td><td>This is the most in-depth source on how to work with the Debugger.</td></tr>
<tr><td><a href="https://www.haiku-os.org/blog/anevilyak/">Blogposts</a></td><td> </td><td>There are a few articles on the Debugger, mostly by Rene Gollent after implementing a new feature.</td></tr>
<tr><td class="onelinetop"><a href="https://www.youtube.com/watch?v=n-NDFwtmQcI&amp;list=PL2KiE-VO9zk-9XPmfusEDaOFd_7AiVKzz">BeGeistert 026 video</a></td><td> </td><td>A video from the BeGeistert meeting in 2012, in which Ingo Weinhold demonstrates the state of the Debugger back then and shows other interesting tools like the profiler to hunt down bottlenecks.</td></tr>
</table>
</div>
</div>
<div class="nav">
<div class="inner"><span>
« <a href="codycam.html">CodyCam</a>
:: <a href="../applications.html#list-of-apps" class="uplink">Applications</a>
:: <a href="deskcalc.html">DeskCalc</a> »
</span></div>
</div>
</body>
</html>