Journal Debug de code Python embarqué dans du code C++
Demat' iNal,
On m'a posé tantôt une question assez intrigante au premier abord :
Dans une application native qui embarque un interpréteur Python, et que l'on est en train de déboguer avec
gdb
, comment faire pour débogguer le code Python associé ?
Pour donner un peu de contexte, on peut lire la doc Python et en extraire ce petit code C:
#define PY_SSIZE_T_CLEAN
#include <Python.h>
int
main(int argc, char *argv[])
{
wchar_t *program
(…)
Journal Aujourd'hui, je euggubed un programme dans GDB...
Bonjour bonjour !
En ce moment, pour beaucoup de fun, je tente de bidouiller une grammaire générée avec flex et bison, en mode un peu "boite noire" (interdiction de modifier la grammaire d'origine, et à vrai dire je sais même pas quelle est la tronche exacte du fichier source, je joue avec libpg_query pour ceux que ça intéresse).
Mais quand on tombe sur une erreur, la backtrace est fort peu instructive :
#0 base_yyerror (base_yylloc=0x7fffffffc124, msg=0x5555555f5104 "syntax error", yyscanner=0x0) at
(…)
Journal La NSA publie son outil de rétro-ingénierie
Cher journal,
Un bouquemarque rapide pour dire que la National Security Agency a publié sous licence Apache son outil Ghidra de reverse engineering, un concurrent apparemment sérieux au très dispendieux IDA Pro.
Personnellement, je me rappelle avoir fait il y a quelques temps des choses relativement simples avec GNU Debugger et Radare2 ; radare2 avait l'air puissant mais m'avait plus l'air d'un framework que d'un produit clés en main. Des experts peuvent-ils m'éclairer ? Quelqu'un aurait un retour sur (…)
Journal CGDB 0.7.0 est sorti... il y a plusieurs mois :S
Salut.
J'utilise cgdb depuis plusieurs années maintenant, sans trop trop suivre son actualité.
En faisant une petite pause entre 2 casse-tête de démêlage de spaghetti multithreadé (hé oui, ils sont modernes, les italiens…) j'ai zieuté sur developpez.com et suis tombé sur un debugguer qui à l'air intéressant parce que moi, toute piste pour trouver enfin un debugguer qui tienne la route sous linux et qui n'embarque pas avec lui la moitié du bureau KDE ou gnome, et de préférence pas (…)
Forum Programmation.autre Substitut de ddd
Bonjour,
Jusqu'à il y a peu, j'utilisais ddd pour débugger mes programmes.
Or ddd ne supporte pas le verrouillage numérique et les caractères accentués en UTF-8.
Je lui cherche un substitut.
J'ai un peu gratté du coté des greffons de geany sans beaucoup de succès.
Et, pour des raisons pédagogiques, je préfèrerais une application indépendante (une action <=> un outil, sinon mes étudiants confondent tout :-)).
Que me suggèreriez-vous ?
Cordialement
Dominique
Nouvelles versions logicielles du projet GNU juin et juillet 2017
Le projet GNU publie tous les mois une liste de versions logicielles publiées. Jetons‐y un coup d’œil pour découvrir de nouveaux logiciels inconnus (de moi), des infâmes bogues disparus ou les promesses de solutions à tous nos besoins : soit des dizaines de nouvelles versions annoncées allant de la corrective mineure à la version attendue depuis des années ; et l’on va donc parler de acct
, auctex
, automake
, binutils
, cgicc
, dr-geo
, freeipmi
, gama
, gcc
, gdb
, glpk
, gnuastro
, gnucash
, gnuhealth
, gnuhealth-control
, gnupg
, gnutls
, grep
, gsl
, guile-cv
, guile-gnome
, libextractor
, libffcall
, libgcrypt
, libidn2
, libmicrohttpd
, libtasn1
, linux-libre
, moe
, motti
, nano
, parallel
, screen
, taler
, texinfo
, tramp
et unifont
.
Journal Un fonds pour la GNU Toolchain
Le Free Software Foundation accepte maintenant des donations spécifiquement pour la GNU Toolchain : GCC, GDB, la glibc, les Binutils, etc.
Toutes les informations ici.
En tant que programmeur C, j’utilise certains de ces outils tous les jours et, comme je n’achète jamais de programmes, je fais parfois une donation pour les projets qui me tiennent hacker. Mais la plupart des distributions GNU/Linux dépendent fortement de la GNU Toolchain, donc, en tant que simple utilisateur, ça vaut aussi la (…)
Outils utiles pour développeur
Le but de cette dépêche est de recenser quelques outils utiles pour les développeurs (pas uniquement C et C++) et de donner accès à des ressources intéressantes pour leur prise en main.
Tout d’abord comment définit‐on un « outil utile » ? Ce sont des logiciels (libres, c’est mieux) qu’il n’est pas obligatoire d’utiliser mais qui permettent de gagner en productivité (ou de moins se prendre la tête avec un bogue). Ces outils sont utilisables indépendamment, mais utilisés ensemble peuvent former un tout qui donne les fonctionnalités d’un environnement de développement intégré.
Il est fort probable que pour certains cette dépêche vienne enfoncer des portes ouvertes. Mais pensez aux nouveaux pour qui elle sera, peut‐être, profitable.
Forum général.petites-annonces TETRANE 2/3: multiples offres d'emplois / stages : Ingé Tests&Validation (QA)
cf l'annonce que nous venons de publier pour la description rapide de notre société et les infos communes à tous nos postes
Postes Ingé Tests&Validation (QA)
Au sein de l’équipe R&D TETRANE, vous concevez les environnements et plans de tests, exploratoires et/ou automatisés, permettant d’assurer le haut niveau de qualité des solutions Tetrane. Vous implémentez les tests des nouvelles versions de manière efficiente. Ainsi vous influencez directement les produits par vos remontées de correctifs et de nouvelles fonctions à (…)
Forum général.petites-annonces TETRANE 1/3: multiples offres d'emplois / stages : Ingé R&D C++
TETRANE est un éditeur de logiciel français créé en 2011, l'équipe comporte actuellement une dizaine d'ingés. Nous sommes basés à Mâcon (50m de la gare, plusieurs ingés habitent à LYON). Notre produit REVEN, basé sur notre simulateur de CPU, aide au debugging avancé et au reverse-engineering. REVEN est actuellement utilisé par des équipes d'experts du monde de la défense sur 4 continents.
Forts de notre succès, nous souhaitons renforcer l'équipe R&D pour adresser le marché des éditeurs de logiciels civils (…)
Forum général.petites-annonces envie de faire du C++14/python au sein d'une dream-team, dans cadre idyllique, tout en étant payé ?
Hello world,
On recrute encore pour notre équipe R&D !
Ayant eu de bonnes candidatures depuis linuxfr mes précédentes fois, je ré-ré-ré-itère :) (je dois en être à la 4° vague de recrutement depuis bientôt 5 ans). Cette annonce ressemble donc beaucoup aux précédentes, avec quelques updates. N'hésitez pas à faire suivre à vos amis non linuxiens !
En 3 lignes (+3 bonus) :
- R&D C++ sous linux, avec du python aussi
- éditeur d'un logiciel d'analyse de binaires exécutables
- plusieurs postes ouverts
- (…)
Utiliser colout pour colorier tout ce qu'affiche GDB
Je sais ce que vous pensez : vous avez beau essayer d'utiliser des interfaces graphiques avec le débogueur GDB (GNU Project Debugger), vous finissez toujours par revenir à la bonne vieille ligne de commande, qui seule vous permet de ressentir une flamboyante puissance et une incandescente rapidité d'action. Dans le même temps, vous aimeriez bien que certaines informations importantes soient agrémentées d'un rouge pétant qui saute aux yeux. Comme je vous comprends. Fort heureusement, GDB est un logiciel complètement hackable, ce qui va me permettre d'exaucer vos vœux les plus ardents.
Il est en effet possible d'attacher des hooks à chaque commande, et d'y appeler des commandes shell. Afin d'ajouter notre touche de carmin, il suffit donc de récupérer la sortie de la commande et de la faire passer dans un colorisateur écarlate. C'est possible, car GDB permet de logguer tout ce qui se passe et qu'Unix a eu la bonne idée d'inventer les pipes nommés.
Pour ajouter la touche de pourpre, un colorisateur capable de gérer facilement des expressions régulières est nécessaire, je vous suggère colout
.
La suite de la dépêche vous donnera un exemple de fichier de configuration à utiliser pour ajouter votre touche d'andrinople à votre propre système.
Forum Programmation.c GDB : comment afficher le module contenant une fonction dans la pile d'appel ?
Bonjour,
Je rencontre une difficulté avec GDB en voulant déboguer un programme. La commande bt permet d'afficher la pile d'appel quand le programme est mis en pause. Parfois, l'affichage retourne les noms des fonctions, parfois, le nom du module (exe ou so) dans lequel se trouve la fonction. Ce que j'aimerais, c'est pouvoir afficher les deux, car je suis parfois perdu pour déterminer les modules impliqués.
Par exemple j'ai :
#0 0x00001234 in une_fonction() ()
#1 0x00f00500 in une_autre_fonction() ()
(…)
Journal Disséquer du binaire - retour d'expérience
Yeah, me revoilà!
La dernière fois, je vous parlais de dissection de binaire. Du temps a passé, et je reviens faire un petit tour sur linuxfr pour donner mes retours d'expérience. Sans plus attendre, les outils kidéchirent sont:
-gdb : bah oui, c'est vraiment incontournable. Mais gdb à poil, c'est chiant. Je conseille à tout le monde de prendre le plugin http://reverse.put.as/gdbinit/. C'est le genre de trucs que j'adore: la conf par défaut juste marche. Pas besoin de (…)