Question

Qu'est-ce que SEGV_MAPERR , pourquoi trouve-t-il toujours SIGSEGV ?

Était-ce utile?

La solution

Il existe deux types courants de SEGV , erreur résultant d'un accès invalide à la mémoire:

  1. Une page ayant les mauvaises autorisations a été consultée. Par exemple, il était en lecture seule mais votre code a essayé de l'écrire. Cela sera signalé comme SEGV_ACCERR .
  2. L'accès à une page qui n'est même pas mappée dans l'espace d'adressage de l'application a été utilisé. Cela résultera souvent du déréférencement d'un pointeur null ou d'un pointeur corrompu avec une valeur entière petite. Ceci est signalé comme SEGV_MAPERR .

La documentation d'un type (code source Linux indexé) pour SEGV_MAPERR se trouve ici: http: / /lxr.free-electrons.com/ident?i=SEGV_MAPERR .

Autres conseils

C'est une faute de segmentation. Probablement un problème de pointeur en suspens, ou une sorte de débordement de tampon.

SIGSSEGV est le signal qui le termine en fonction du problème, faute de segmentation.

Recherchez les pointeurs en suspens ainsi que le problème de débordement.

L'activation des vidages principaux vous aidera à déterminer le problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top