J'ai du mal à passer dans GDB. J'ai construit un exemple de programme à partir de la bibliothèque ffmpeg avec des symboles de débogage et de déconnexion. Bien que j'ai configuré la bibliothèque ffmpeg à statique et explicitement désactivé partagé, il semble que le programme que je débogue relie dynamiquement, puisque sa taille de fichier est seulement de 99 Ko. Je ne sais pas que c'est le problème mais je pensais le mentionner.Surmonter dans Emacs GDB
Après avoir défini et atteint un point d'arrêt dans av_seek_frame, j'utilise la commande 'next' pour passer la souris. Cependant, cela va dans la première fonction de av_seek_frame(), comme vous pouvez le voir ci-dessous. De plus, si vous faites une seconde "prochaine", la trace perd sa trace. Est-ce que je me suis trompé? Comment puis-je passer par-dessus? Je dois souligner que je double vérifié que « pas en mode déclenché » est désactivé par défaut (comme je crois que cela va casser au premier morceau de code sans informations de débogage.)
Breakpoint 1, av_seek_frame (s=0x16429000, stream_index=0, timestamp=29727438, flags=0) at l
(gdb) list
1648
1649 return 0;
1650 }
1651
1652 int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp, int flags
1653 {
1654 int ret;
1655 AVStream *st;
1656
1657 ff_read_frame_flush(s);
(gdb) next
ff_read_frame_flush (s=0x16429000) at libavformat/utils.c:1248
(gdb) list
1243
1244 /**
1245 * Flush the frame reader.
1246 **/
1247 void ff_read_frame_flush(AVFormatContext *s)
1248 {
1249 AVStream *st;
1250 int i, j;
1251
1252 flush_packet_queue(s);
(gdb) next
ff_read_frame_flush (s=0x16429000) at libavformat/utils.c:1252
(gdb) where
#0 ff_read_frame_flush (s=0x16429000) at libavformat/utils.c:1252
#1 0x00000000 in ??()
Avez-vous construit avec '-fomit-frame-pointer'? –
Je ne pense pas, mais c'est possible puisque je ne suis pas si à l'aise dans les builds basés sur le style unix. Mes options de configuration (qui construisent à la fois les librairies ffmpeg et l'exemple ffplay que je débogue sont :) ./configure --enable-libmp3lame --enable-static --enable-pthreads --enable-ffplay --disable-shared - -disable-optimizations --disable-mmx --disable-stripping --enable-debug –
Essayez de vérifier 'show step-mode' - Je n'utilise pas emacs, donc je ne sais pas quelles sont ses valeurs par défaut. –