logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 11-01-2021 13:23:24

Lupa
Membre
Distrib. : Debian Stretch 4.9.110-3+deb9u6 / Buster
Noyau : 4.9.0-8-amd64 (Stretch) Buster : 5.4.0-0.bpo.2-amd
(G)UI : xfce
Inscription : 28-06-2017

Besoin d'aide sous codium (vcode)

Bonjour à tous et bonne année smile

Je reprends le C après plus de vingt ans.
J'ai opté pour codium, donc vcode.

Mais...
Comment déboguer à l'intérieur de l'IDE ? hmm
J'ai réussi à franciser un peu (ça aide...). Mais j'ai besoin :
- de fixer des points d'arrêt
- afficher l'état d'une variable
- voir où ça plante.

Là, par exemple, j'ai une "Erreur de segmentation". Mais où ?
J'ai installé l'extension de Michelson pour déboguer... mais l'IDE me dit qu'elle ne la trouve pas. Elle n'est pas dans le path (l'IDE dit ça en Anglais).

Où trouver des tutos sur l'IDE elle-même ?
Parce que les options de gcc en mode debug, c'est bien beau, mais, dans l'IDE, ce serait plus ergonomique...

J'ignore si j'ai été clair...
Merci sad

Mais... Personne ne programme, ici, en C ?
Tout seul, on avance pas... Vous programmez avec  quoi, vous ?
Merci sad

Dernière modification par Lupa (12-01-2021 10:51:49)

Hors ligne

#2 16-01-2021 00:00:54

Beta-Pictoris
Membre
Lieu : Angers
Distrib. : Buster
Inscription : 11-08-2015

Re : Besoin d'aide sous codium (vcode)

Bonjour smile

Ça m'arrive de programmer en Perl.

Mais, j'essaye de progresser en Scheme avec Guile.

Scheme, et sa variante Racket qui vient avec son IDE visuel, est vraiment pas mal si tu veux revoir ta façon de programmer.

Cela dit, Python est un langage à la mode.

Et Emacs comme IDE, c'est pas mal aussi. smile

Hors ligne

#3 16-01-2021 11:43:04

Lupa
Membre
Distrib. : Debian Stretch 4.9.110-3+deb9u6 / Buster
Noyau : 4.9.0-8-amd64 (Stretch) Buster : 5.4.0-0.bpo.2-amd
(G)UI : xfce
Inscription : 28-06-2017

Re : Besoin d'aide sous codium (vcode)

Bonjour smile

Donc, avec Emacs, j'aurai une IDE avec des points d'arrêt sur mon code ? Génial... C'est exactement de cela dont j'ai besoin.

Hors ligne

#4 16-01-2021 11:57:54

Beta-Pictoris
Membre
Lieu : Angers
Distrib. : Buster
Inscription : 11-08-2015

Re : Besoin d'aide sous codium (vcode)

Après avoir lancé gdb dans emacs, je pense que c'est possible.

Hors ligne

#5 16-01-2021 12:09:19

naguam
Membre
Lieu : Quelque part
Distrib. : Plusieurs
Noyau : Ça dépend
(G)UI : La CLI il n'y a que ça de vrai!
Inscription : 13-06-2016

Re : Besoin d'aide sous codium (vcode)

J'utilises pas vscode, mais je sais qu'il a un wrapper à gdb intégré. Tu peux débugguer dans l'interface. Seulement comme je n'utilises pas vscode (mais des amis l'utilisent) je sais pas ou mais la doc doit pouvoir se trouver en ligne.

Pour les segfault je te conseilles de compiler avec l'option -g voire -ggdb3, puis d'executer avec valgrind. Ça te donne le nombre de contexte d'erreur (car une erreur peut se répéter dans une boucle) les memory leak, etc.
Egalement je te conseilles de compiler avec -Wall -Wextra pour avoir des Warnings plus verbeux.

cc -Wall -Wextra -ggdb3 source.c

valgrind ./a.out

Exemple de code qui est certain de segfault.

int main(void)
{
    int *i;

    i[2] = 34;
    return 0;
}


==84382== Memcheck, a memory error detector
==84382== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==84382== Using Valgrind-3.16.1 and LibVEX; rerun with -h for copyright info
==84382== Command: ./a.out
==84382==
==84382== Use of uninitialised value of size 8
==84382==    at 0x401112: main (source.c:5)
==84382==
==84382== Invalid write of size 4
==84382==    at 0x401112: main (source.c:5)
==84382==  Address 0x8 is not stack'd, malloc'd or (recently) free'd
==84382==
==84382==
==84382== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==84382==  Access not within mapped region at address 0x8
==84382==    at 0x401112: main (source.c:5)
==84382==  If you believe this happened as a result of a stack
==84382==  overflow in your program's main thread (unlikely but
==84382==  possible), you can try to increase the size of the
==84382==  main thread stack using the --main-stacksize= flag.
==84382==  The main thread stack size used in this run was 8388608.
==84382==
==84382== HEAP SUMMARY:
==84382==     in use at exit: 0 bytes in 0 blocks
==84382==   total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==84382==
==84382== All heap blocks were freed -- no leaks are possible
==84382==
==84382== Use --track-origins=yes to see where uninitialised values come from
==84382== For lists of detected and suppressed errors, rerun with: -s
==84382== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
Segmentation fault (core dumped)
 

Mais corriger les warnings aident souvent à corriger les segfault avant qu'ils arrivent si la logique est bonne.
là dans l'exemple j'avais :

source.c: In function ‘main’:
source.c:5:6: warning: ‘i’ is used uninitialized in this function [-Wuninitialized]
    5 |     i[2] = 34;
      |      ^
 

Pointeur non initialisé, ça peut donner la puce à l'oreille, mais si il aurait pu être initialisé et segfaulter quand même.

Il dit erreur ligne 5 dans la fonction main du fichier source.c, en effet i[2] = 34; c'est pas valide, aucune mémoire a été allouée au pointeur (tableau dynamique).

Mais j'ai aucun leak mémoire

0 allocs, 0 frees, 0 bytes allocated

Il faut autant d'alloc que de free.

Valgrind a pas mal d'options.
Gdb est bien aussi.

Dernière modification par naguam (16-01-2021 12:42:55)

Hors ligne

#6 16-01-2021 13:08:17

SuShY
CA Debian-Facile
Lieu : Chartres
Distrib. : Debian Sid x86_64
Noyau : Linux > 6.0.0-2-amd64
(G)UI : i3WM - 4.21-1
Inscription : 06-01-2018
Site Web

Re : Besoin d'aide sous codium (vcode)

Hello, pour débuguer avec Codium ou VS Code, il faut que tu y paramètre une configuration en lien avec ton langage de code.
Onglet Exécuter puis tout en haut dans exécuter tu créé ta configuration.

Hors ligne

#7 17-01-2021 12:05:07

Lupa
Membre
Distrib. : Debian Stretch 4.9.110-3+deb9u6 / Buster
Noyau : 4.9.0-8-amd64 (Stretch) Buster : 5.4.0-0.bpo.2-amd
(G)UI : xfce
Inscription : 28-06-2017

Re : Besoin d'aide sous codium (vcode)

Bonjour et merci pour vos réponses :hello:

J'ai vu, effectivement, qu'il fallait configurer un fichier .JSON pour le débogage sous Vscode. Mais... que mettre dedans ??  C'est là que j'ai buté.
J'ai installé Emacs, ce matin.
Mais c'est, et je le savais, tout d'abord un éditeur de texte.  Je cherche sur Youtube comment l'utiliser en tant qu'IDE.

J'ai de bons tutos pour reprendre le C. Mais, je ne pourrai rien faire sans un débogage pas à pas, comme sous Delphi ou Builder sous Windows...

Hors ligne

#8 17-01-2021 12:40:07

Beta-Pictoris
Membre
Lieu : Angers
Distrib. : Buster
Inscription : 11-08-2015

Re : Besoin d'aide sous codium (vcode)

Emacs intègre un gestionnaire de packages. Pour gérer les packages, tu dois appliquer le raccourci suivant : M-x package-list-packages

Par contre, la liste des packages de base (dépôt "elpa") est plutôt limitée.

Si tu ajoutes dans ton ".emacs" les ligne suivantes , cela ajoutera le dépôt "melpa" et  tu auras accès à beaucoup plus d'extensions :

(require 'package)
(add-to-list 'package-archives
        '("melpa" . "https://melpa.org/packages/")
        t)


Avec ce dépôt, tu accèdes à toutes sortes de plugins pour transformer ton Emacs en super IDE. smile

Dernière modification par Beta-Pictoris (17-01-2021 13:32:36)

Hors ligne

#9 17-01-2021 12:57:26

Lupa
Membre
Distrib. : Debian Stretch 4.9.110-3+deb9u6 / Buster
Noyau : 4.9.0-8-amd64 (Stretch) Buster : 5.4.0-0.bpo.2-amd
(G)UI : xfce
Inscription : 28-06-2017

Re : Besoin d'aide sous codium (vcode)

Formidable !!

Voici un aperçu de ce que j'attends d'une IDE :
Image :
https://up.security-x.fr/file.php?h=Rd4 … 98ecf8427e

Ca passe ?
Non. Que c'est difficile, ici,  de faire passer  une capture d'écran ! C'est sans doute voulu pour des raisons de sécurité.

Passe pas sad
L'URL de l'image : https://www.cjoint.com/c/KArl7PYvBup

Dernière modification par Lupa (17-01-2021 13:01:13)

Hors ligne

#10 17-01-2021 13:30:58

SuShY
CA Debian-Facile
Lieu : Chartres
Distrib. : Debian Sid x86_64
Noyau : Linux > 6.0.0-2-amd64
(G)UI : i3WM - 4.21-1
Inscription : 06-01-2018
Site Web

Re : Besoin d'aide sous codium (vcode)

Lupa a écrit :

Mais... que mettre dedans ??  C'est là que j'ai buté.

Tu as je pense tous les tutos sur Youtuibe pour répondre à cette question, tout dépend de ton langage.

Hors ligne

#11 17-01-2021 13:52:17

Beta-Pictoris
Membre
Lieu : Angers
Distrib. : Buster
Inscription : 11-08-2015

Re : Besoin d'aide sous codium (vcode)

J'ai trouvé ceci, mais ce n'est pas dans melpa : https://tuhdo.github.io/c-ide.html
Y a même des animations. smile

Dernière modification par Beta-Pictoris (17-01-2021 13:53:36)

Hors ligne

#12 17-01-2021 14:03:33

SuShY
CA Debian-Facile
Lieu : Chartres
Distrib. : Debian Sid x86_64
Noyau : Linux > 6.0.0-2-amd64
(G)UI : i3WM - 4.21-1
Inscription : 06-01-2018
Site Web

Re : Besoin d'aide sous codium (vcode)

Voici ce que j'ai de mon côté pour du "bash"

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "bashdb",
            "request": "launch",
            "name": "Bash-Debug (simplest configuration)",
            "program": "${file}"
        }
    ]
}

Hors ligne

#13 19-01-2021 13:54:49

Lupa
Membre
Distrib. : Debian Stretch 4.9.110-3+deb9u6 / Buster
Noyau : 4.9.0-8-amd64 (Stretch) Buster : 5.4.0-0.bpo.2-amd
(G)UI : xfce
Inscription : 28-06-2017

Re : Besoin d'aide sous codium (vcode)

Bonjour à tous. Et merci pour vos réponses.

Je me dirige plutôt vers Geany. Mais... toujours pareil ! J'ai beau fouiller partout, pas moyen d'installer le plugin debuggueur... Il existe pour Jessie et Stretch, pas Buster. J'ai tenté d'installer celui de Stretch : aussitôt viré pat apt install -f .

J'ai même téléchargé le paquet tout entier "geany-plugins-1.37". Mais pour l'installer, là... On a beau traduire...

Je voudrais faire comme indiqué ici : https://progsv.epfl.ch/www/series/serie12-0.php
Mais pas moyen...

Je vais  voir sur Github.
Comment programmer sans point d'arrêts ? Impossible.

Dernière modification par Lupa (19-01-2021 13:59:48)

Hors ligne

Pied de page des forums