blob: 9b2cd09871a02f0051cecfe04b141cc1f142f4e7 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Debugging Mynewt &mdash; Apache Mynewt latest documentation</title>
<link rel="shortcut icon" href="../_static/mynewt-logo-only-newt32x32.png"/>
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/sphinx_theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/v2.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/restructuredtext.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/overrides.css" type="text/css" />
<link rel="index" title="Index"
href="../genindex.html"/>
<link rel="search" title="Search" href="../search.html"/>
<link rel="top" title="Apache Mynewt latest documentation" href="../index.html"/>
<link rel="up" title="Setup &amp; Get Started" href="index.html"/>
<link rel="next" title="Concepts" href="../concepts.html"/>
<link rel="prev" title="Using the Serial Port with Mynewt OS" href="serial_access.html"/>
<script src="../_static/js/modernizr.min.js"></script>
<script>
(function(i, s, o, g, r, a, m) {
i["GoogleAnalyticsObject"] = r;
(i[r] =
i[r] ||
function() {
(i[r].q = i[r].q || []).push(arguments);
}),
(i[r].l = 1 * new Date());
(a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m);
})(window, document, "script", "//www.google-analytics.com/analytics.js", "ga");
ga("create", "UA-72162311-1", "auto");
ga("send", "pageview");
</script>
</head>
<body class="not-front page-documentation" role="document" >
<div id="wrapper">
<div class="container">
<div id="banner" class="row v2-main-banner">
<a class="logo-cell" href="/">
<img class="logo" src="../_static/img/logo.png">
</a>
<div class="tagline-cell">
<h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4>
</div>
<div class="news-cell">
<div class="well">
<h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.11.0, Apache NimBLE 1.6.0 </a> released September 7, 2023)
</div>
</div>
</div>
</div>
<header>
<nav id="navbar" class="navbar navbar-inverse" role="navigation">
<div class="container">
<!-- Collapsed navigation -->
<div class="navbar-header">
<!-- Expander button -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<!-- Expanded navigation -->
<div class="navbar-collapse collapse">
<!-- Main navigation -->
<ul class="nav navbar-nav navbar-right">
<li>
<a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
</li>
<li class="important">
<a href="/quick-start/">Quick Start</a>
</li>
<li>
<a href="/about/">About</a>
</li>
<li>
<a href="/talks/">Talks</a>
</li>
<li class="active">
<a href="/documentation/">Documentation</a>
</li>
<li>
<a href="/download/">Download</a>
</li>
<li>
<a href="/community/">Community</a>
</li>
<li>
<a href="/events/">Events</a>
</li>
</ul>
<!-- Search, Navigation and Repo links -->
<ul class="nav navbar-nav navbar-right">
</ul>
</div>
</div>
</nav>
</header>
<!-- STARTS MAIN CONTENT -->
<div id="main-content">
<div id="breadcrumb">
<div class="container">
<a href="/documentation/">Docs</a> /
<a href="index.html">Setup &amp; Get Started</a> /
Debugging Mynewt
<div class="sourcelink">
<a href="https://github.com/apache/mynewt-documentation/edit/master/docs/get_started/debug.rst" class="icon icon-github"
rel="nofollow"> Edit on GitHub</a>
</div>
</div>
</div>
<!-- STARTS CONTAINER -->
<div class="container">
<!-- STARTS .content -->
<div id="content" class="row">
<!-- STARTS .container-sidebar -->
<div class="container-sidebar col-xs-12 col-sm-3">
<div id="docSidebar" class="sticky-container">
<div role="search" class="sphinx-search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
<!-- Note: only works when deployed -->
<select class="form-control" onchange="if (this.value) window.location.href=this.value">
<option value="/latest" selected>
Version: latest
</option>
<option value="/v1_11_0" selected="selected" >
Version: 1.11.0
</option>
<option value="/v1_10_0" >
Version: 1.10.0
</option>
<option value="/v1_9_0" >
Version: 1.9.0
</option>
<option value="/v1_8_0" >
Version: 1.8.0
</option>
<option value="/v1_7_0" >
Version: 1.7.0
</option>
<option value="/v1_6_0" >
Version: 1.6.0
</option>
<option value="/v1_5_0" >
Version: 1.5.0
</option>
<option value="/v1_4_0" >
Version: 1.4.0
</option>
<option value="/v1_3_0/os/introduction" >
Version: 1.3.0
</option>
<option value="/v1_2_0/os/introduction" >
Version: 1.2.0
</option>
<option value="/v1_1_0/os/introduction" >
Version: 1.1.0
</option>
<option value="/v1_0_0/os/introduction" >
Version: 1.0.0
</option>
<option value="/v0_9_0/os/introduction" >
Version: 0.9.0
</option>
</select>
<div class="region region-sidebar">
<div class="docs-menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Setup &amp; Get Started</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="native_install/index.html">Native Installation</a></li>
<li class="toctree-l2"><a class="reference internal" href="docker.html">Docker Container</a></li>
<li class="toctree-l2"><a class="reference internal" href="project_create.html">Create Your First Project</a></li>
<li class="toctree-l2"><a class="reference internal" href="serial_access.html">Serial Port Setup</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Debugging Mynewt</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../concepts.html">Concepts</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorials/tutorials.html">Tutorials</a></li>
<li class="toctree-l1"><a class="reference internal" href="../external_links.html">Third-party Resources</a></li>
<li class="toctree-l1"><a class="reference internal" href="../os/os_user_guide.html">OS User Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../network/index.html">BLE User Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../newt/index.html">Newt Tool Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../newtmgr/index.html">Newt Manager Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../mynewt_faq/index.html">Mynewt FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="../misc/index.html">Appendix</a></li>
</ul>
</div>
</div>
</div>
<!-- ENDS STICKY CONTAINER -->
</div>
<!-- ENDS .container-sidebar -->
<div class="col-xs-12 col-sm-9">
<div class="alert alert-warning">
<p>
Version 1.11.0 is not the most recent version of the
Apache Mynewt documentation. Click <a href="/latest">here</a> to
read the latest version.
</p>
</div>
<div class="">
<div class="rst-content">
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="debugging-mynewt">
<h1>Debugging Mynewt<a class="headerlink" href="#debugging-mynewt" title="Permalink to this headline"></a></h1>
<p>If you run into issues with Mynewt applications, you may need to use the debugger. This page will show
you how to set up and use the debugger in Mynewt.</p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><p><a class="reference internal" href="#prerequisites" id="id1">Prerequisites</a></p></li>
<li><p><a class="reference internal" href="#starting-the-debugger" id="id2">Starting the Debugger</a></p></li>
</ul>
</div>
<div class="section" id="prerequisites">
<h2><a class="toc-backref" href="#id1">Prerequisites</a><a class="headerlink" href="#prerequisites" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>You have installed the Newt tool and toolchains on your machine. Visit the <a class="reference internal" href="native_install/index.html"><span class="doc">Native Installation</span></a> page to get started.</p></li>
<li><p>You have run through one of the tutorials, created a project, or have an existing one.</p></li>
<li><p>Familiarity with GDB; for more information refer to the <a class="reference external" href="https://sourceware.org/gdb/current/onlinedocs/gdb/">GDB documentation</a>.</p></li>
</ul>
</div>
<div class="section" id="starting-the-debugger">
<h2><a class="toc-backref" href="#id2">Starting the Debugger</a><a class="headerlink" href="#starting-the-debugger" title="Permalink to this headline"></a></h2>
<p>Mynewt uses GDB to debug applications. To open a debugger session for Mynewt, you can run
either of the following newt commands:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">debug</span> <span class="pre">&lt;target_name&gt;</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">run</span> <span class="pre">&lt;target_name&gt;</span> <span class="pre">&lt;version_number&gt;</span></code></p></li>
</ul>
<p>The <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">debug</span></code> command will start the debugger for the specified target. That target
should be running on the device you are debugging on. For more information on the command, take a look at
the <a class="reference internal" href="../newt/command_list/newt_debug.html"><span class="doc">command structure in the Newt Tool Guide</span></a>.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">run</span></code> command also starts the debugger, but will also build the target, create
an image with the specified version number, and load it onto the board. More details on its usage and syntax are
on the <a class="reference internal" href="../newt/command_list/newt_run.html"><span class="doc">Newt Tool command guide</span></a>.</p>
<p>Starting the debugger will bring up the GDB session in the console:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">~/test/1.5 $ newt debug pca40blinky</span>
<span class="go">[/Users/dlee/test/1.5/repos/apache-mynewt-core/hw/bsp/nordic_pca10040/nordic_pca10040_debug.sh /Users/dlee/test/1.5/repos/apache-mynewt-core/hw/bsp/nordic_pca10040 bin/targets/pca40blinky/app/apps/blinky/blinky]</span>
<span class="go">Debugging bin/targets/pca40blinky/app/apps/blinky/blinky.elf</span>
<span class="go">GNU gdb (GNU Tools for Arm Embedded Processors 7-2018-q2-update) 8.1.0.20180315-git</span>
<span class="go">Copyright (C) 2018 Free Software Foundation, Inc.</span>
<span class="go">License GPLv3+: GNU GPL version 3 or later &lt;http://gnu.org/licenses/gpl.html&gt;</span>
<span class="go">This is free software: you are free to change and redistribute it.</span>
<span class="go">There is NO WARRANTY, to the extent permitted by law. Type &quot;show copying&quot;</span>
<span class="go">and &quot;show warranty&quot; for details.</span>
<span class="go">This GDB was configured as &quot;--host=x86_64-apple-darwin10 --target=arm-none-eabi&quot;.</span>
<span class="go">Type &quot;show configuration&quot; for configuration details.</span>
<span class="go">For bug reporting instructions, please see:</span>
<span class="go">&lt;http://www.gnu.org/software/gdb/bugs/&gt;.</span>
<span class="go">Find the GDB manual and other documentation resources online at:</span>
<span class="go">&lt;http://www.gnu.org/software/gdb/documentation/&gt;.</span>
<span class="go">For help, type &quot;help&quot;.</span>
<span class="go">Type &quot;apropos word&quot; to search for commands related to &quot;word&quot;...</span>
<span class="go">Reading symbols from bin/targets/pca40blinky/app/apps/blinky/blinky.elf...done.</span>
<span class="go">os_tick_idle (ticks=128)</span>
<span class="go">at repos/apache-mynewt-core/hw/mcu/nordic/nrf52xxx/src/hal_os_tick.c:164</span>
<span class="go">164 if (ticks &gt; 0) {</span>
<span class="gp gp-VirtualEnv">(gdb)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<div class="rst-footer-buttons row" role="navigation" aria-label="footer navigation">
<a href="../concepts.html" class="btn btn-neutral float-right" title="Concepts" accesskey="n">Next: Concepts <span class="fa fa-arrow-circle-right"></span></a>
<a href="serial_access.html" class="btn btn-neutral" title="Using the Serial Port with Mynewt OS" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: Using the Serial Port with Mynewt OS</a>
</div>
</div>
</div>
</div>
<!-- ENDS CONTENT SECTION -->
</div>
<!-- ENDS .content -->
</div>
</div>
<footer>
<div class="container">
<div class="row">
<div class="col-xs-12">
<p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
</div>
<div class="col-xs-12">
<div class="logos">
<img src="../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
<small class="footnote">
Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
</small>
<a href="">
<img src="../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
</a>
</div>
</div>
</div>
</div>
</footer>
</div>
<!-- ENDS #wrapper -->
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'../',
VERSION:'latest',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt',
LINK_SUFFIX: '.html'
};
</script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/js/bootstrap-3.0.3.min.js"></script>
<script type="text/javascript" src="../_static/js/affix.js"></script>
<script type="text/javascript" src="../_static/js/main.js"></script>
</body>
</html>