J'utilise des GObject dans ma liste.
Aussi j'utiliserai sûrement une GList de int. mais pas de structure.
Edit 1:
La fonction def g_type_name_from_instance me retourne None parce que quand elle appel def g_type_to_name l'appel a gdb.lookup_type("TypeNode") lance une exception. Le type TypeNode n'existe pas. J'ai regardé dans la doc j'y ais trouvé GType GtypeInfo GTypeInstance mais je ne sais pas ce qu'est TypeNode, et le membre qname ne me dit rien
Edit 2:
Pour ceux qui veulent essayer sans avoir a installer QtCreator. Il faut avoir la gtk+ d'installé et gdb avec le module python activité.
L’exercice consiste à faire fonctionner la fonction python g_type_name_from_instance()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| /* file: main.c */
#include <gtk/gtk.h>
#include <stdlib.h>
void my_stop(void){}
int
main (int argc, char *argv[])
{
GList *list = NULL;
GtkWidget *window;
gtk_init (&argc, &argv);
window = create_window ();
g_print("window is type of %s\n", g_type_name_from_instance(window));
list = g_list_append(list, window);
/* ... */
list = g_list_append(list, window);
my_stop();
return EXIT_SUCCESS;
} |
Pour compiler:
$]gcc `pkg-config gtk+-2.0 --cflags` main.c -o main `pkg-config gtk+-2.0 --libs`
Pour debugger:
- On lance gdb
- On ajoute un point d'arret
- On lance l'exécute
- On test quand ca marche
(gdb) python gdb.lookup_type("GtkWindow")
- On test quand ca marche pas
(gdb) python gdb.lookup_type("TypeNode")
1 2
| gdb.error: No type named TypeNode.
Error while executing Python code. |
- On quit
J'ai besoin de faire un gdb.lookup_type("TypeNode") par ce que c'est ce qu'utilise /usr/share/glib-2.0/gdb/gobject.py dans g_type_name_from_instance a cette ligne
Tout aide serrai apprécié,
PS: Peut-être que TypeNode est défini par gdb TypeNode est définie dans gobject/gtype.c
Partager