on_draw: erreur (unhandled exception in signal handler)

on_draw: erreur (unhandled exception in signal handler)

by Sam Guy Houliston -
Number of replies: 6

Bonjour, 

On a un problème avec le dessin d'éléments.
Plus spécifiquement, avec l'appel de fonctions de dessin en dehors de la fonction on_draw, en utilisant le pointeur ptcr sur cr.

Le message erreur ci-dessous s'affiche- auriez-vous auriez-vous des conseils pour cette situation?

Il s'agit d'une question assez vague, mais nous ne savons pas exactement quels éléments du programmes sont concernés, étant donné que l'inclusion des fichiers etc.. à l'air correcte.

Merci

Attachment pictoral.PNG
In reply to Sam Guy Houliston

Re: on_draw: erreur (unhandled exception in signal handler)

by Ronan Boulic -
In reply to Ronan Boulic

Re: on_draw: erreur (unhandled exception in signal handler)

by Sam Guy Houliston -

Nous  affichons seulement ptcr.

De plus, 
Si on inclut un fichier de test par argument lors de l'ouverture du programme, on a une segmenation fault dans la même ligne ^.
Si on ouvre le programme, et qu'ensuite on Open un fichier test,  on reçoit l'erreur décrite dans le premier post.

L'image ci-dessous montre ce qu'on reçoit lorsu'on essaie d'afficher (*ptcr).


Attachment capture.JPG
In reply to Sam Guy Houliston

Re: on_draw: erreur (unhandled exception in signal handler)

by Ronan Boulic -

ptcr est un "pointeur sur cr" ; il vous manque une * à sa déclaration:

static const Cairo::RefPtr<Cairo::Context>* ptcr(nullptr);

il doit être initialisé avec l'adresse de cr:

ptcr = &cr ;

les détails sont dans le pdf du cours indiqué dans le message précédent.


In reply to Ronan Boulic

Re: on_draw: erreur (unhandled exception in signal handler)

by Sam Guy Houliston -

Merci pour la réponse.


Nous avions en effect déclaré le pointeur correctement : 
static const Cairo::RefPtr<Cairo::Context>* ptcr(nullptr);. 

Ce dernier message erreur apparait lorsqu'on essaie de faire: std::cout << (*ptcr) << std::endl;
On ne comprend pas pourquoi le message erreur semble manquer le * à la déclaration de ptcr.

In reply to Sam Guy Houliston

Re: on_draw: erreur (unhandled exception in signal handler)

by Lars Henning Klein -

Hi,

do you ever write something to ptcr?

It is initialized as a nullptr, if you try to dereference that with *ptcr it will segfault.

In reply to Lars Henning Klein

Re: on_draw: erreur (unhandled exception in signal handler)

by Lars Henning Klein -

What you could do is:
Do a text search for "ptcr".

Find where you write a value to it:

ptcr = &cr;


print something to cout immediately before or after:
"now ptcr points to cr"


run your program again.

Make sure that you see that message before the program segfaults.

If there's a segfault without this message that should explain the problem.