summaryrefslogtreecommitdiff
path: root/debugging/index.html
blob: f0d0f4bdc4074e5dd1411a58e5c9110567390f69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="../">
<head>
  <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />

  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Debugging &mdash; Accel-ppp 1.12 documentation</title>
      <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=80d5e7a1" />
      <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" />

  
    <link rel="shortcut icon" href="../_static/favicon.ico"/>
  <!--[if lt IE 9]>
    <script src="../_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
        <script src="../_static/jquery.js?v=5d32c60e"></script>
        <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
        <script src="../_static/documentation_options.js?v=2d52a127"></script>
        <script src="../_static/doctools.js?v=9a2dae69"></script>
        <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
    <script src="../_static/js/theme.js"></script>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="FAQ" href="faq.html" />
    <link rel="prev" title="pppd-compat examples" href="../examples/pppd_compat_examples.html" /> 
</head>

<body class="wy-body-for-nav"> 
  <div class="wy-grid-for-nav">
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >

          
          
          <a href="../index.html" class="icon icon-home">
            Accel-ppp
              <img src="../_static/logo.png" class="logo" alt="Logo"/>
          </a>
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>
        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
              <p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../installation/install.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../configuration/configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../guides/control_features.html">Control features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../guides/recommendations.html">Recommendations</a></li>
<li class="toctree-l1"><a class="reference internal" href="../guides/BRAS_tuning.html">BRAS tuning</a></li>
<li class="toctree-l1"><a class="reference internal" href="../guides/radius_features.html">RADIUS and DM/CoA features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../examples/examples.html">Examples</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Debugging</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>
</ul>

        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../index.html">Accel-ppp</a>
      </nav>

      <div class="wy-nav-content">
        <div class="rst-content">
          <div role="navigation" aria-label="Page navigation">
  <ul class="wy-breadcrumbs">
      <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
      <li class="breadcrumb-item active">Debugging</li>
      <li class="wy-breadcrumbs-aside">
            <a href="../_sources/debugging/index.rst.txt" rel="nofollow"> View page source</a>
      </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
             
  <section id="debugging">
<span id="id1"></span><h1>Debugging<a class="headerlink" href="#debugging" title="Link to this heading"></a></h1>
<p>Sometimes for debugging need to build accel-ppp with additional flags:</p>
<p><code class="docutils literal notranslate"><span class="pre">-DCMAKE_BUILD_TYPE=Debug</span></code> - Include debug information to accel-pppd binary</p>
<p><code class="docutils literal notranslate"><span class="pre">-DCMAKE_C_FLAGS='-g</span> <span class="pre">-O0'</span></code> - Enable optimization flags</p>
<p><code class="docutils literal notranslate"><span class="pre">-DMEMDEBUG=TRUE</span></code> - Set this flag if you want to debug memleak</p>
<p>Allow create core dump files without size limiting, edit /etc/security/limits.conf and add</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>*<span class="w">  </span>soft<span class="w">  </span>core<span class="w">  </span>unlimited
</pre></div>
</div>
<p>Or run <code class="docutils literal notranslate"><span class="pre">ulimit</span> <span class="pre">-c</span> <span class="pre">unlimited</span></code> for apply immediately</p>
<p>Edit <code class="docutils literal notranslate"><span class="pre">/etc/sysctl.conf</span></code> to define core dump file name and location, add</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>kernel.core_uses_pid<span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">1</span>
kernel.core_pattern<span class="w"> </span><span class="o">=</span><span class="w"> </span>/root/core-%e-%p
</pre></div>
</div>
<p>And apply <code class="docutils literal notranslate"><span class="pre">sysctl</span> <span class="pre">-p</span></code></p>
<p>If accel-ppp runs as systemd service to allow create coredumps it is necessary to add <code class="docutils literal notranslate"><span class="pre">DefaultLimitCORE=infinity</span></code> to <code class="docutils literal notranslate"><span class="pre">/etc/systemd/system.conf</span></code> and run <code class="docutils literal notranslate"><span class="pre">systemctl</span> <span class="pre">daemon-reexec</span></code> to activate new params.</p>
<p>Recommended: to create a self-checking program with predefined mistake. Create <code class="docutils literal notranslate"><span class="pre">test.c</span></code> with the following content</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>int<span class="w"> </span>main<span class="o">()</span><span class="w"> </span><span class="o">{</span>
<span class="w">  </span>*<span class="o">(</span>char<span class="w"> </span>*<span class="o">)</span><span class="nv">0</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span>
<span class="w">  </span><span class="k">return</span><span class="w"> </span><span class="m">0</span><span class="p">;</span>
<span class="o">}</span>
</pre></div>
</div>
<p>Compile this program <code class="docutils literal notranslate"><span class="pre">gcc</span> <span class="pre">test.c</span></code> and run <code class="docutils literal notranslate"><span class="pre">./a.out</span></code></p>
<p>If core files appear in <code class="docutils literal notranslate"><span class="pre">/root</span></code> directory and in <code class="docutils literal notranslate"><span class="pre">dmesg</span></code> exist output <code class="docutils literal notranslate"><span class="pre">a.out[xxxx]:</span> <span class="pre">segfault</span> <span class="pre">at</span> <span class="pre">...</span></code> then all done properly.</p>
<p><strong>Run accel-ppp in GDB (GNU Debugger)</strong></p>
<p>If you want to run accel-ppp in GDB, necessary disable logratation for accel-ppp log files.</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>gdb<span class="w"> </span>-ex<span class="o">=</span>run<span class="w">  </span>--args<span class="w"> </span>accel-pppd<span class="w"> </span>-c<span class="w"> </span>/etc/accel-ppp.conf<span class="w"> </span>-p<span class="w"> </span>/var/run/accel-ppp.pid
</pre></div>
</div>
</section>


           </div>
          </div>
          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
        <a href="../examples/pppd_compat_examples.html" class="btn btn-neutral float-left" title="pppd-compat examples" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
        <a href="faq.html" class="btn btn-neutral float-right" title="FAQ" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
    </div>

  <hr/>

  <div role="contentinfo">
    <p>&#169; Copyright 2023, Accel-ppp Dev.</p>
  </div>

  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
    provided by <a href="https://readthedocs.org">Read the Docs</a>.
   

</footer>
        </div>
      </div>
    </section>
  </div>
  <script>
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script> 

</body>
</html>