mirror of
https://github.com/ceph/ceph
synced 2025-01-03 09:32:43 +00:00
Merge pull request #44861 from Matan-B/wip-matanb-doc-gdb
doc/dev: Debuggging with gdb
This commit is contained in:
commit
f108f7de74
43
doc/dev/developer_guide/debugging-gdb.rst
Normal file
43
doc/dev/developer_guide/debugging-gdb.rst
Normal file
@ -0,0 +1,43 @@
|
||||
GDB - The GNU Project Debugger
|
||||
==============================
|
||||
|
||||
`The GNU Project Debugger (GDB) <https://www.sourceware.org/gdb>`_ is
|
||||
a powerful tool that allows you to analyze the execution flow
|
||||
of a process.
|
||||
GDB can help to find bugs, uncover crash errors or track the
|
||||
source code during execution of a development cluster.
|
||||
It can also be used to debug Teuthology tests runs.
|
||||
|
||||
GET STARTED WITH GDB
|
||||
--------------------
|
||||
|
||||
Basic usage with examples can be found `here. <https://geeksforgeeks.org/gdb-command-in-linux-with-examples>`_
|
||||
GDB can be attached to a running process. For instance, after deploying a
|
||||
development cluster, the process number (PID) of a ``ceph-osd`` daemon can be found in::
|
||||
|
||||
$ cd build
|
||||
$ cat out/osd.0.pid
|
||||
|
||||
Attaching gdb to the process::
|
||||
|
||||
$ gdb ./bin/ceph-osd -p <pid>
|
||||
|
||||
.. note::
|
||||
It is recommended to compile without any optimizations (``-O0`` gcc flag)
|
||||
in order to avoid elimintaion of intermediate values.
|
||||
|
||||
Stopping for breakpoints while debugging may cause timeouts, so the following
|
||||
configuration options are suggested::
|
||||
|
||||
[osd]
|
||||
osd_op_thread_timeout = 1500
|
||||
osd_op_thread_suicide_timeout = 1500
|
||||
|
||||
Debugging Teuthology Tests
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
``src/script/ceph-debug-docker.sh`` can be used to analyze Teuthology failures::
|
||||
|
||||
$ ./ceph-debug-docker.sh <branch-name>
|
||||
|
||||
Refer to the script header for more information.
|
@ -22,3 +22,4 @@ Contributing to Ceph: A Guide for Developers
|
||||
Ceph Dashboard Developer Documentation (formerly HACKING.rst) <dash-devel>
|
||||
Tracing Developer Documentation <jaegertracing>
|
||||
Cephadm Developer Documentation <../cephadm/index>
|
||||
Debugging with GDB <debugging-gdb>
|
||||
|
Loading…
Reference in New Issue
Block a user