Wie kann ich mit Xcode 5 die Debugsymbole der vorkompilierten statischen Bibliothek mit dem Quellcode abgleichen?
Ich muss FFmpeg für iOS mit einem kompilierenexternes Build-Skript, aber beim Debuggen sehe ich Assembler, wenn ich zu tief in die Funktionen der libavformat-Bibliothek eintauche:
0x109a73: cmpl $0, 1192(%ebp)
0x109a7a: jns 0x109a86 ; mov_write_header + 198 at movenc.c:3539
0x109a7c: movl $1, 1192(%ebp)
0x109a86: movl 16(%ebp), %eax
0x109a89: cmpl $0, 84(%eax)
0x109a8d: movl %edx, %ecx
0x109a8f: jne 0x109ad9 ; mov_write_header + 281 at movenc.c:3548
0x109a91: testb $2, 48(%ecx)
0x109a95: jne 0x109ac1 ; mov_write_header + 257 at movenc.c:3541
Es bleiben klare Debugging-Symbole zurück, die mich zu der Annahme veranlassen, dass es eine Möglichkeit geben sollte, Xcode den Speicherort dieses Quellcodes mitzuteilen, um das Debuggen zu vereinfachen.
Ist das überhaupt möglich?
bearbeiten: Ich habe hier eine verwandte Frage gefundenKeine Symbole / Quelle für externe Bibliothek in Xcode 4
Also wenn ich rennexcrun dwarfdump libavformat.a | grep "\.c"
Ich erhalte eine Reihe von Ergebnissen wie folgt:
AT_decl_file( "libavformat/movenc.c" )
Also habe ich versucht, die relevanten Quelldateien in Ordnern relativ zur .a-Datei und meiner .xcodeproj-Datei abzulegen, aber keine dieser Methoden hat funktioniert. Der vollständige Quellcode ist hier verfügbar:https://github.com/openwatch/livestreamer-ios
edit2: Ich habe eine andere Frage zum Festlegen der Quellenzuordnung für lldb gefunden, bin mir aber nicht ganz sicher, was ich tun soll ...LLDB-Entsprechung des Befehls gdb "directory" zur Angabe des Quellensuchpfads?
Es scheint, als müsste ich es tun
(lldb) settings set target.source-map libavformat/movenc.c /path/to/libavformat/movenc.c
für jede datei die ich brauche?