{"id":1097,"date":"2025-06-04T13:30:02","date_gmt":"2025-06-04T12:30:02","guid":{"rendered":"https:\/\/workboot.fr\/ciela\/?page_id=1097"},"modified":"2026-01-14T11:14:50","modified_gmt":"2026-01-14T10:14:50","slug":"gdb","status":"publish","type":"page","link":"https:\/\/workboot.fr\/ciela\/gdb\/","title":{"rendered":"gdb"},"content":{"rendered":"\n<nav aria-label=\"Table des mati\u00e8res\" class=\"wp-block-table-of-contents\"><ol><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/gdb\/#presentation-de-gdb\">\ud83d\udc1e Pr\u00e9sentation de gdb<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/gdb\/#commandes-de-gdb-a-connaitre\">Commandes de gdb \u00e0 connaitre<\/a><ol><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/gdb\/#decryptage\">\ud83d\udd0d D\u00e9cryptage<\/a><\/li><\/ol><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/gdb\/#autres-formats-utiles-avec-x\">\ud83e\uddfe Autres formats utiles avec x\/ :<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/gdb\/#exemples\">Exemples :<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/gdb\/#exemple-pour-voir-comment-est-code-un-entier-et-un-entier-signe\">Exemple pour voir comment est cod\u00e9 un entier et un entier sign\u00e9<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/gdb\/#pour-aller-plus-loin-dans-le-debug-layout\">Pour aller plus loin dans le debug (layout)<\/a><ol><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/gdb\/#la-commande-layout\">la commande layout <\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/gdb\/#la-commande-focus-pour-mettre-le-focus-sur-la-layout\">La commande focus  ( pour mettre le focus sur la layout)<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/gdb\/#raccourcis-clavier-ctrl-x\">Raccourcis Clavier \u00a0Ctrl+X\u00a0:<\/a><\/li><\/ol><\/li><\/ol><\/nav>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"presentation-de-gdb\">\ud83d\udc1e <strong>Pr\u00e9sentation de <code>gdb<\/code><\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Il permet de <strong>comprendre ce que fait exactement un programme \u00e0 l&rsquo;ex\u00e9cution<\/strong>, \u00e9tape par \u00e9tape.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>gdb<\/code> signifie <strong>GNU Debugger<\/strong>.<br>C\u2019est l\u2019outil de <strong>d\u00e9bogage<\/strong> en ligne de commande pour les programmes compil\u00e9s avec <strong>GCC<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"commandes-de-gdb-a-connaitre\">Commandes de gdb \u00e0 connaitre<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Commande<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>run<\/code> ou <code>r<\/code><\/td><td>Ex\u00e9cute le programme<\/td><\/tr><tr><td><code>break main<\/code> ou <code>b main<\/code><\/td><td>Met un point d&rsquo;arr\u00eat au d\u00e9but du <code>main<\/code><\/td><\/tr><tr><td><code>next<\/code> ou <code>n<\/code><\/td><td>Ex\u00e9cute la <strong>ligne suivante<\/strong> (sans entrer dans les fonctions)<\/td><\/tr><tr><td><code>step<\/code> ou <code>s<\/code><\/td><td>Ex\u00e9cute la <strong>ligne suivante<\/strong>, en entrant dans les fonctions<\/td><\/tr><tr><td><code>print x<\/code> ou <code>p x<\/code><\/td><td>Affiche la valeur de la variable <code>x<\/code><\/td><\/tr><tr><td><code>continue<\/code> ou <code>c<\/code><\/td><td>Reprend l\u2019ex\u00e9cution jusqu\u2019au prochain point d\u2019arr\u00eat<\/td><\/tr><tr><td><code>quit<\/code> ou <code>q<\/code><\/td><td>Quitte <code>gdb<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">exemple d&rsquo;utilisation<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">fichier: code.c<\/p>\n\n\n\n<pre style='color:#cfcfc2;background-color:#232629;'>\n<span style='color:#7a7c7d;'>\/********************************<\/span>\n<span style='color:#7a7c7d;'> * Projet :Newbie code<\/span>\n<span style='color:#7a7c7d;'> * Auteur :Leprof<\/span>\n<span style='color:#7a7c7d;'> * Date   :04\/06\/2025<\/span>\n<span style='color:#7a7c7d;'> ********************************\/<\/span>\n<span style='color:#27ae60;'>#include <\/span><span style='color:#27ae60;'>&lt;stdlib.h&gt;<\/span>\n<span style='color:#27ae60;'>#include <\/span><span style='color:#27ae60;'>&lt;stdio.h&gt;<\/span>\n\n<span style='color:#2980b9;'>int<\/span> main <span style='color:#3f8058;'>(<\/span><span style='color:#2980b9;'>int<\/span> argc<span style='color:#3f8058;'>,<\/span> <span style='color:#2980b9;'>char<\/span> <span style='color:#3f8058;'>**<\/span>argv<span style='color:#3f8058;'>)<\/span>\n<span style='color:#3f8058;'>{<\/span>\n\tprintf<span style='color:#3f8058;'>(<\/span><span style='color:#f44f4f;'>&quot;Bonjour le monde <\/span><span style='color:#3daee9;'>\\n<\/span><span style='color:#f44f4f;'>&quot;<\/span><span style='color:#3f8058;'>);<\/span>\n\tprintf<span style='color:#3f8058;'>(<\/span><span style='color:#f44f4f;'>&quot;Au revoir newbie ! \u00e0 bientot <\/span><span style='color:#3daee9;'>\\n<\/span><span style='color:#f44f4f;'>&quot;<\/span><span style='color:#3f8058;'>);<\/span>\n\t<b><span style='color:#fdbc4b;'>return<\/span><\/b> EXIT_SUCCESS<span style='color:#3f8058;'>;<\/span>\n<span style='color:#3f8058;'>}<\/span>\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">on va compiler le code (code.c) avec l&rsquo;option -g<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">puis on entre dans gdb , qui va nous permettre de piloter notre code !<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">gdb code<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bruno@elliott:~\/Works\/langage_C\/projet$ gcc code.c -o code -g\nbruno@elliott:~\/Works\/langage_C\/projet$ ls\ncode  code.c\nbruno@elliott:~\/Works\/langage_C\/projet$ gdb code\nGNU gdb (Debian 13.1-3) 13.1\nCopyright (C) 2023 Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version 3 or later &lt;http:\/\/gnu.org\/licenses\/gpl.html&gt;\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\nType \"show copying\" and \"show warranty\" for details.\nThis GDB was configured as \"x86_64-linux-gnu\".\nType \"show configuration\" for configuration details.\nFor bug reporting instructions, please see:\n&lt;https:\/\/www.gnu.org\/software\/gdb\/bugs\/&gt;.\nFind the GDB manual and other documentation resources online at:\n    &lt;http:\/\/www.gnu.org\/software\/gdb\/documentation\/&gt;.\n\nFor help, type \"help\".\nType \"apropos word\" to search for commands related to \"word\"...\nReading symbols from projet...\n(gdb) l\n1       \/********************************\n2        * Projet :Newbie code\n3        * Auteur :Leprof\n4        * Date   :04\/06\/2025\n5        ********************************\/\n6       #include &lt;stdlib.h&gt;\n7       #include &lt;stdio.h&gt;\n8\n9       int main (int argc, char **argv)\n10      {\n11              printf(\"Bonjour le monde \\n\");\n12              printf(\"Au revoir newbie ! \u00e0 bientot \\n\");\n13              return EXIT_SUCCESS;\n14      }\n(gdb) _<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ici l pour list , nous liste le code .. avec des num\u00e9ros de lignes et on voit ici une fonction main.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>(gdb) run\nStarting program: \/home\/bruno\/Works\/langage_C\/projet\/projet \n&#91;Thread debugging using libthread_db enabled]\nUsing host libthread_db library \"\/lib\/x86_64-linux-gnu\/libthread_db.so.1\".\nBonjour le monde \nAu revoir newbie ! \u00e0 bientot \n&#91;Inferior 1 (process 15054) exited normally]\n(gdb) <\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">run , lancer notre code <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">et on constate :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Bonjour le monde \nAu revoir newbie ! \u00e0 bientot <\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"decryptage\">\ud83d\udd0d D\u00e9cryptage<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Inferior 1<\/strong> : c\u2019est le <strong>processus que tu d\u00e9bogues<\/strong> (le programme que tu as lanc\u00e9 avec <code>gdb<\/code>)<\/li>\n\n\n\n<li><strong>process 15054<\/strong> : c\u2019est son <strong>identifiant de processus (PID)<\/strong> dans le syst\u00e8me<\/li>\n\n\n\n<li><strong>exited normally<\/strong> : cela signifie que le programme s\u2019est <strong>termin\u00e9 sans erreur<\/strong><br>\u2192 <strong>il n\u2019y a pas eu de crash, ni d\u2019exception, ni de signal fatal<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">bien comprendre ici que int devant main() !et le code retour 0 car EXIT_SUCCESS , termin\u00e9 normalement .<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On va mettre un point d&rsquo;arr\u00eat ! <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">(gdb) br 11<br>Breakpoint 1 at 0x1148: file projet.c, line 11.<br>(gdb) run &nbsp;<br>Starting program: \/home\/bruno\/Works\/langage_C\/projet\/projet &nbsp;<br>[Thread debugging using libthread_db enabled]<br>Using host libthread_db library \u00ab\u00a0\/lib\/x86_64-linux-gnu\/libthread_db.so.1\u00a0\u00bb.<br><br>Breakpoint 1, main (argc=1, argv=0x7fffffffdab8) at projet.c:11<br>11 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>printf<\/strong>(\u00ab\u00a0Bonjour le monde \\n\u00a0\u00bb);<br>(gdb)_<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>br<\/strong> pour break , contraction de break point (point d\u2019arr\u00eat ligne 11)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">on appel point d&rsquo;arr\u00eat un endroit ou on va demander \u00e0 gdb de nous attendre , ici on va attendre avant d&rsquo;afficher Bonjour le monde<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">et gdb attends une commande<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>run<\/strong> ou r va lancer l\u2019ex\u00e9cution<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">(gdb) n<br>Bonjour le monde &nbsp;<br>12 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>printf<\/strong>(\u00ab\u00a0Au revoir newbie ! \u00e0 bientot \\n\u00a0\u00bb);<br>(gdb)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>next<\/strong> ou <strong>n<\/strong> pour ex\u00e9cuter la ligne<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">on est en attente de r\u00e9aliser la ligne 12 , on a plus qu&rsquo;a faire next ..<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gdb est un outil incontournable pour le d\u00e9veloppeur c <\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"pour-aller-plus-loin-et-plus-proche-de-la-machine\">pour aller plus loin, et plus proche de la machine<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"autres-formats-utiles-avec-x\">\ud83e\uddfe Autres formats utiles avec <code>x\/<\/code> :<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Format<\/th><th>Taille<\/th><th>Description<\/th><th>Exemple<\/th><\/tr><\/thead><tbody><tr><td><code>b<\/code><\/td><td>1 octet<\/td><td>byte<\/td><td><code>x\/10xb<\/code> : 10 octets en hex<\/td><\/tr><tr><td><code>h<\/code><\/td><td>2 octets<\/td><td>halfword (16 bits)<\/td><td><code>x\/4xh<\/code> : 4 entiers 16 bits<\/td><\/tr><tr><td><code>w<\/code><\/td><td>4 octets<\/td><td>word (32 bits)<\/td><td><code>x\/4xw<\/code> : 4 int\/pointeurs 32b<\/td><\/tr><tr><td><code>g<\/code><\/td><td>8 octets<\/td><td>giant word (64 bits)<\/td><td><code>x\/5gx<\/code> : 5 pointeurs 64 bits<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"exemples\">Exemples :<\/h2>\n\n\n\n<pre>(gdb) x\/10xb 0x7fffffffe5b4                                                                                                       \n<span style=\"color:#12488B\">0x7fffffffe5b4<\/span>: 0x75    0x6e    0x00    0x64    0x65    0x75    0x78    0x00                                                      \n<span style=\"color:#12488B\">0x7fffffffe5bc<\/span>: 0x74    0x72\n(gdb) print argv\n<span style=\"color:#2AA1B3\">$16<\/span> = (char **) <span style=\"color:#12488B\">0x7fffffffe2f8<\/span>\n(gdb)  x\/5gx 0x7fffffffe2f8\n<span style=\"color:#12488B\">0x7fffffffe2f8<\/span>: 0x00007fffffffe58b      0x00007fffffffe5b4\n<span style=\"color:#12488B\">0x7fffffffe308<\/span>: 0x00007fffffffe5b7      0x00007fffffffe5bc\n<span style=\"color:#12488B\">0x7fffffffe318<\/span>: 0x0000000000000000\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"exemple-pour-voir-comment-est-code-un-entier-et-un-entier-signe\">Exemple pour voir comment est cod\u00e9 un entier et un entier sign\u00e9<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include &lt;stdlib.h>\n#include &lt;stdio.h>\n\nint main() {\n    int a = -10;\n    unsigned int b = 10;\n    return EXIT_SUCCESS;\n}<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>bruno@elliott:~\/Works\/langage_C\/int_gdb$ gcc main.c -o main -Wall -ansi -pedantic -g\nmain.c: In function \u2018main\u2019:\nmain.c:6:18: warning: unused variable \u2018b\u2019 &#91;-Wunused-variable]\n    6 |     unsigned int b = 10;\n      |                  ^\nmain.c:5:9: warning: unused variable \u2018a\u2019 &#91;-Wunused-variable]\n    5 |     int a = -10;\n      |         ^\nbruno@elliott:~\/Works\/langage_C\/int_gdb$ \n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Juste des warnings , rien de grave et il est clair ici que notre code ne sert \u00e0 rien que voir les 2 types ! et pour le compilateur (gcc) a et b ne servent \u00e0 rien ! mais pas pour nous.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bruno@elliott:~\/Works\/langage_C\/int_gdb$ <strong>gdb .\/main <\/strong>\nGNU gdb (Debian 13.1-3) 13.1\nCopyright (C) 2023 Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version 3 or later &lt;http:\/\/gnu.org\/licenses\/gpl.html&gt;\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\nType \"show copying\" and \"show warranty\" for details.\nThis GDB was configured as \"x86_64-linux-gnu\".\nType \"show configuration\" for configuration details.\nFor bug reporting instructions, please see:\n&lt;https:\/\/www.gnu.org\/software\/gdb\/bugs\/&gt;.\nFind the GDB manual and other documentation resources online at:\n    &lt;http:\/\/www.gnu.org\/software\/gdb\/documentation\/&gt;.\n\nFor help, type \"help\".\nType \"apropos word\" to search for commands related to \"word\"...\nReading symbols from .\/main...\n(gdb) l\n1\t#include &lt;stdlib.h&gt;\n2\t#include &lt;stdio.h&gt;\n3\t\n4\tint main() {\n5\t    int a = -10;\n6\t    unsigned int b = 10;\n7\t    return EXIT_SUCCESS;\n8\t}\n(gdb) \n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>l <\/strong>pour list (on voit notre code ! )<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">on va faire br main puis,  run et next (n) 2 fois ! (pour d\u00e9finir nos 2 variables)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Breakpoint 1, main () at main.c:5\n5\t    int a = -10;\n(gdb) n\n6\t    unsigned int b = 10;\n(gdb) n\n7\t    return EXIT_SUCCESS;\n(gdb) p a\n$1 = -10\n(gdb) p b\n$2 = 10\n(gdb) p\/x a\n$3 = 0xfffffff6\n(gdb) p\/x b\n$4 = 0xa\n(gdb) \n<\/code><\/pre>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\">Le cas  de a , entier sign\u00e9 <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">on en d\u00e9duit ici que un entier sign\u00e9 est cod\u00e9 sur 4 octets sur notre machine (4&#215;8) = 32 Bits <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">si on prend l&rsquo;exemple de -10  en d\u00e9cimal , sur 32 bits 0xfffffff6 est son compl\u00e9ment \u00e0 2.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>0xfffffff6 <\/strong> sur 32  bits <\/p>\n<\/div><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>en binaire naturel  : <strong>1111 1111 1111 1111 1111 1111 1111 0110 <\/strong><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>le compl\u00e9ment \u00e0 1   : <strong>0000 0000 0000 0000 0000 0000 0000 1001<\/strong> =&gt; 0x00000009<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">le compl\u00e9ment \u00e0 2:  cpl 1 +1<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>                    : <strong>0000 0000 0000 0000 0000 0000 0000 1010 <\/strong>=> 0x00000000A (10 en d\u00e9cimal)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">on en d\u00e9duit que <strong>0xfffffff6<\/strong>   est un nombre n\u00e9gatif (bit de poids fort \u00e0 1) et on a sa valeur avec un compl\u00e9ment \u00e0 2 , ici 10  (donc -10) <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">pour la variable b qui est juste en entier sign\u00e9 : 0x0000000A <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Le rangement des octets en m\u00e9moire sont ici en Little Endian (oppos\u00e9 au big Endian) <\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>(gdb) x\/4x &amp;a\n0x7fffffffdaec:\t0xf6\t0xff\t0xff\t0xff\n(gdb) x 0x7fffffffdaec\n0x7fffffffdaec:\t0xf6\n(gdb) x 0x7fffffffdaed\n0x7fffffffdaed:\t0xff\n(gdb) x 0x7fffffffdaee\n0x7fffffffdaee:\t0xff\n(gdb) x 0x7fffffffdaef\n0x7fffffffdaef:\t0xff\n(gdb) \n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">x pour gdb la contraction de eXamine <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>(gdb) x\/10xb chaine\n0x7fffffffdb47:\t0x42\t0x6f\t0x6e\t0x6a\t0x6f\t0x75\t0x72\t0x21\n0x7fffffffdb4f:\t0x00\t0x01\n(gdb) p chaine\n$2 = \"Bonjour!\"\n(gdb) \n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>x    \/   x    b    chaine\n\u2502       \u2502    \u2502      \u2502\n\u2514\u2500 commande  \u2502      \u2502\n    \"examine\"\u2502      \u2502\n             \u2514\u2500 format \u2502\n                hexa   \u2502\n                       \u2514\u2500 adresse\/variable<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code><em>Les parties :<\/em>\n<strong>x<\/strong> (premier)\nCommande \"e<em>x<\/em>amine memory\" - pour examiner la m\u00e9moire.\n<strong>\/<\/strong> (slash)\nS\u00e9pare les options de la commande.\n\n<strong>x<\/strong> (apr\u00e8s le slash)\nFormat d'affichage : hexadecimal\n\n<strong><em>Autres formats possibles :<\/em><\/strong>\n<strong>d<\/strong> : d\u00e9cimal sign\u00e9\n<strong>u<\/strong> : d\u00e9cimal non sign\u00e9\n<strong>o<\/strong> : octal\n<strong>t<\/strong> : binaire\n<strong>f<\/strong> : float\n<strong>a<\/strong> : adresse\n<strong>i<\/strong> : instruction assembleur\n<strong>c<\/strong> : caract\u00e8re\n<strong>s<\/strong> : cha\u00eene\n\n<strong>b<\/strong>\nTaille de l'unit\u00e9 : byte (octet)\n\n<strong><em>Autres tailles :<\/em><\/strong>\n<strong>h<\/strong> : halfword (2 octets)\n<strong>w<\/strong> : word (4 octets)\n<strong>g<\/strong> : giant (8 octets)\n\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"pour-aller-plus-loin-dans-le-debug-layout\">Pour aller plus loin dans le debug (layout)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">mise en page , disposition.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"la-commande-layout\">la commande layout <\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>(gdb) layout\nasm next prev regs split src<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>layout src<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/12\/gdb_layout.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/12\/gdb_layout-1024x576.png\" alt=\"\" class=\"wp-image-5993\" srcset=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/12\/gdb_layout-1024x576.png 1024w, https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/12\/gdb_layout-300x169.png 300w, https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/12\/gdb_layout-768x432.png 768w, https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/12\/gdb_layout-1536x864.png 1536w, https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/12\/gdb_layout.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"la-commande-focus-pour-mettre-le-focus-sur-la-layout\">La commande focus  ( pour mettre le focus sur la layout)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">focus   src \/ asm \/ cmd \/ next \/prev <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"raccourcis-clavier-ctrl-x\">Raccourcis Clavier &nbsp;<code>Ctrl+X<\/code>&nbsp;:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>Ctrl+X O<\/code><\/strong>&nbsp;: passe \u00e0 la fen\u00eatre suivante (source \u2192 commandes \u2192 etc.)<\/li>\n\n\n\n<li><strong><code>Ctrl+X A<\/code><\/strong>&nbsp;: active\/d\u00e9sactive compl\u00e8tement le mode TUI<\/li>\n\n\n\n<li><strong><code>Ctrl+X 1<\/code><\/strong>&nbsp;: passe en mode fen\u00eatre unique (utile pour agrandir)<\/li>\n\n\n\n<li><strong><code>Ctrl+X 2<\/code><\/strong>&nbsp;: revient au mode fen\u00eatres multiples<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">Ctrl + X + O    # = focus next (tourne entre fen\u00eatres)\nCtrl + X + S    # Focus fen\u00eatre source\nCtrl + X + R    # Focus fen\u00eatre registres\nCtrl + X + A    # Focus fen\u00eatre assembleur\nCtrl + X + C    # Focus ligne de commande<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udc1e Pr\u00e9sentation de gdb Il permet de comprendre ce que fait exactement un programme \u00e0 l&rsquo;ex\u00e9cution, \u00e9tape par \u00e9tape. gdb signifie GNU Debugger.C\u2019est l\u2019outil de d\u00e9bogage en ligne de commande [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-1097","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>gdb - workboot<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/workboot.fr\/ciela\/gdb\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"gdb - workboot\" \/>\n<meta property=\"og:description\" content=\"\ud83d\udc1e Pr\u00e9sentation de gdb Il permet de comprendre ce que fait exactement un programme \u00e0 l&rsquo;ex\u00e9cution, \u00e9tape par \u00e9tape. gdb signifie GNU Debugger.C\u2019est l\u2019outil de d\u00e9bogage en ligne de commande [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/workboot.fr\/ciela\/gdb\/\" \/>\n<meta property=\"og:site_name\" content=\"workboot\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-14T10:14:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/12\/gdb_layout.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/gdb\\\/\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/gdb\\\/\",\"name\":\"gdb - workboot\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/gdb\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/gdb\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/gdb_layout-1024x576.png\",\"datePublished\":\"2025-06-04T12:30:02+00:00\",\"dateModified\":\"2026-01-14T10:14:50+00:00\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/workboot.fr\\\/ciela\\\/gdb\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/gdb\\\/#primaryimage\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/gdb_layout.png\",\"contentUrl\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/gdb_layout.png\",\"width\":1920,\"height\":1080},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#website\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/\",\"name\":\"workboot\",\"description\":\"Open Source, Open Minds \",\"publisher\":{\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#organization\",\"name\":\"workboot\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/logo_ciel-dorian-1.png\",\"contentUrl\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/logo_ciel-dorian-1.png\",\"width\":1024,\"height\":950,\"caption\":\"workboot\"},\"image\":{\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"gdb - workboot","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/workboot.fr\/ciela\/gdb\/","og_locale":"fr_FR","og_type":"article","og_title":"gdb - workboot","og_description":"\ud83d\udc1e Pr\u00e9sentation de gdb Il permet de comprendre ce que fait exactement un programme \u00e0 l&rsquo;ex\u00e9cution, \u00e9tape par \u00e9tape. gdb signifie GNU Debugger.C\u2019est l\u2019outil de d\u00e9bogage en ligne de commande [&hellip;]","og_url":"https:\/\/workboot.fr\/ciela\/gdb\/","og_site_name":"workboot","article_modified_time":"2026-01-14T10:14:50+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/12\/gdb_layout.png","type":"image\/png"}],"twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/workboot.fr\/ciela\/gdb\/","url":"https:\/\/workboot.fr\/ciela\/gdb\/","name":"gdb - workboot","isPartOf":{"@id":"https:\/\/workboot.fr\/ciela\/#website"},"primaryImageOfPage":{"@id":"https:\/\/workboot.fr\/ciela\/gdb\/#primaryimage"},"image":{"@id":"https:\/\/workboot.fr\/ciela\/gdb\/#primaryimage"},"thumbnailUrl":"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/12\/gdb_layout-1024x576.png","datePublished":"2025-06-04T12:30:02+00:00","dateModified":"2026-01-14T10:14:50+00:00","inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/workboot.fr\/ciela\/gdb\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/workboot.fr\/ciela\/gdb\/#primaryimage","url":"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/12\/gdb_layout.png","contentUrl":"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/12\/gdb_layout.png","width":1920,"height":1080},{"@type":"WebSite","@id":"https:\/\/workboot.fr\/ciela\/#website","url":"https:\/\/workboot.fr\/ciela\/","name":"workboot","description":"Open Source, Open Minds ","publisher":{"@id":"https:\/\/workboot.fr\/ciela\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/workboot.fr\/ciela\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/workboot.fr\/ciela\/#organization","name":"workboot","url":"https:\/\/workboot.fr\/ciela\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/workboot.fr\/ciela\/#\/schema\/logo\/image\/","url":"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/05\/logo_ciel-dorian-1.png","contentUrl":"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/05\/logo_ciel-dorian-1.png","width":1024,"height":950,"caption":"workboot"},"image":{"@id":"https:\/\/workboot.fr\/ciela\/#\/schema\/logo\/image\/"}}]}},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"admin","author_link":"https:\/\/workboot.fr\/ciela\/author\/admin\/"},"uagb_comment_info":0,"uagb_excerpt":"\ud83d\udc1e Pr\u00e9sentation de gdb Il permet de comprendre ce que fait exactement un programme \u00e0 l&rsquo;ex\u00e9cution, \u00e9tape par \u00e9tape. gdb signifie GNU Debugger.C\u2019est l\u2019outil de d\u00e9bogage en ligne de commande [&hellip;]","_links":{"self":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages\/1097","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/comments?post=1097"}],"version-history":[{"count":36,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages\/1097\/revisions"}],"predecessor-version":[{"id":6132,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages\/1097\/revisions\/6132"}],"wp:attachment":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/media?parent=1097"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}