Debugging Octave: Difference between revisions

m
Minor fixes.
(→‎Tools for debugging: Restore instructions for attaching gdb to Octave from an "independent" shell.)
m (Minor fixes.)
Line 1: Line 1:
= Preliminaries =
= Preliminaries =
Since compilation of all the source from scratch can take long it is good to have a source folder where most of the source has been compiled. To do this, you can create a parallel build:
Since compilation of all the source from scratch can take long it is good to have a source folder where most of the source has been compiled. To do this, you can create a parallel build:


Line 9: Line 10:
</syntaxhighlight>
</syntaxhighlight>


This will create a new build of Octave in a different directory without optimisations (no -O2 gcc parameter) and with debug symbols compiled in. This build is useful for debugging Octave itself.
This will create a new build of Octave in a different directory without optimizations (no -O2 gcc parameter) and with debug symbols compiled in. This build is useful for debugging Octave itself.


= Tools for debugging =
= Tools for debugging =
There are different tools for debugging. This article concentrates on describing how to use <code>gdb</code>.
There are different tools for debugging. This article concentrates on describing how to use <code>gdb</code>.


Line 75: Line 77:


=== Where are core dumps stored? ===
=== Where are core dumps stored? ===
It differs on each system. First you should see how core dumps are handled on your system. To do so, type this in a shell terminal:
It differs on each system. First you should see how core dumps are handled on your system. To do so, type this in a shell terminal:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Line 82: Line 85:


=== How to view a core dump? ===
=== How to view a core dump? ===
To do this you should use gdb. Core dumps are saved under root user, so you may need to change owner of the core dump you are interested in if you are not logged in as root. After that type in the terminal:
To do this you should use gdb. Core dumps are saved under root user, so you may need to change owner of the core dump you are interested in if you are not logged in as root. After that type in the terminal:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Line 101: Line 105:


=== Helpful gdb commands ===
=== Helpful gdb commands ===
[http://www.gnu.org/software/gdb/documentation gdb documentation]
[http://www.gnu.org/software/gdb/documentation gdb documentation]


Line 120: Line 125:


== ddd ==
== ddd ==
[http://www.gnu.org/software/ddd gui for gdb]
 
[http://www.gnu.org/software/ddd GUI for gdb]


[[Category:Development]]
[[Category:Development]]