23Fermer25
Kevin KoflerLe 18/11/2007 à 09:58
C'est bon, j'ai compris ce qui se passe! C'est un bogue dans TiEmu. En fait, il est impossible de déboguer des programmes kernel depuis le 15 juillet 2005 (donc essentiellement depuis que le tigcc-debugging-branch existe), ça montre à quel point le mode kernel est utilisé. gni

J'explique: ce que fait TiEmu quand on fait "Debug file with TiEmu" est:
1. il envoie le programme,
2. il met un program entry breakpoint dessus.
3. il attend que tu lances le programme avec les bons arguments.
Une fois le programme lancé:
4. le program entry breakpoint est activé,
5. TiEmu supprime le program entry breakpoint,
6. TiEmu charge les informations de débogage à l'adresse du program entry breakpoint.
Et voilà où se trouve le problème. En effet, mon commit du 15 juillet 2005 a modifié les program entry breakpoints pour s'activer sur le début de _main en kernel. Par conséquent, l'adresse du program entry breakpoint est celle de _main, pas celle de __ld_entry_point, donc pas la bonne adresse pour reloger les informations de débogage. Il faut que je retranche l'offset quand je charge le program entry breakpoint.

Je vais corriger ça, mais je me demande s'il vaut le coup de supporter le débogage de programmes kernel étant donné que tu es visiblement le seul à l'utiliser...