2012-10-19 13 views

cevap

23

target.source-map ayarı, hata ayıklama oturumunda bir dizi a => b yol yeniden tanımlamasını tanımlamanıza izin verir. Bu, temel dosya adına kaynak dosyaları aramak için dizinlerin bir listesi olan gdb dir komutuyla aynı değildir, ancak aynı sorunları source-map ile çözebilirsiniz.

% cd /tmp 
% echo 'int main() { }' > a.c 
% clang -g a.c 
% mkdir hide 
% mv a.c hide/ 
% xcrun lldb a.out 
(lldb) settings set target.source-map /tmp /tmp/hide 
(lldb) l -f a.c 
    1 int main() { } 
(lldb) br se -n main 
Breakpoint created: 1: name = 'main', locations = 1 
(lldb) r 
Process 21674 launched: '/private/tmp/a.out' (x86_64) 
Process 21674 stopped 
* thread #1: tid = 0x1f03, 0x0000000100000f49 a.out`main + 9 at a.c:1, stop reason = breakpoint 1.1 
    #0: 0x0000000100000f49 a.out`main + 9 at a.c:1 
-> 1 int main() { } 
(lldb) 

bu ayarda, lldb tip set list target.source-map hakkında daha fazla bilgi için: Ben derleme sonra gizli bir dizine bir kaynak dosya taşımak nereye İşte bir örnek. fwiw bu lldb içinde apropos path yaparak, bu ad/açıklamada yolu kelimesine sahip tüm komutları/ayarları listeleyerek keşfettiniz. Bu isimde bir ayar olduğunu gördükten sonra, ayar listesini görmek ve target. altında dosyalandığını öğrenmek için settings list yapardınız.

+0

Jason, kullanımı açıklığa kavuşturduğunuz ve iyi bir açıklayıcı örnek sunduğunuz için teşekkür ederiz! ("Bir resim bin kelimeye bedeldir" ;-) Umarım bu örneği "GDT TO LLDB COMMAND MAP" (http://lldb.llvm.org/lldb-gdb. html)./Saygılarımla, Lars. – IODEV

+0

Evet, tek sorun şudur: target.source-map aslında dir ile aynı şey değildir; gdb'nin pathname-substitution ayarına eşdeğerdir. Xcode tarafından sahne arkası değiştirmeleri kullanıldı ancak kullanıcılar normalde bunun farkında değildi. Bir noktada ldb'ye gdb'nin dir komutuna benzer bir komut eklememiz gerekecek. –

+3

Bu cevaptan özlediğim tek şey, onu oluştururken hangi kaynak yolunun kullanıldığını bulmak olacaktır. Uzak bir makineye bağlanırsam, genellikle hangi yolun kullanıldığını bilmiyorum, umarım lldb'den kaynak dosyalarını bulmak için hangi yolda istediğini göstermesini isterim, bu yüzden doğru şekilde kaynak-harita oluşturabilirim. – lundman