Soru Eclipse CDT hata ayıklama "kaynak adsız"


Paylaşılan bir kütüphaneye sahip bir projem var (dinamik olarak yüklenmiş) ve hata ayıklamaya çalışıyorum. Aşağıdaki hata iletisini alıyorum:

No source file named /home/username/Code/path/to/project/MyFile.cpp.

Diğer konuları aradıktan sonra, -g ile derlediğimden ve uygun klasörlerin hata ayıklama yapılandırmalarının kaynak yolları sekmesinde olduğundan emin oldum. Tuhaf kısmı doğru mutlak yolu vermesidir: referans ettiği dosya var, o yüzden neden orada olduğunu düşünmediğimi anlamıyorum.

Bunun hakkında ne yapacağını bilen var mı?


18
2017-10-19 00:28


Menşei




Cevaplar:


Sadece aynı konuya rastladım, ancak benim kesme noktalarım, paylaşımlı bir kütüphanede değil, yürütülebilir dosyanın kendisinde. Bunu çözmek için "Hata ayıklama yapılandırması" nı açmam, hata ayıklama yapılandırmamı seçmem ve şu ayarları yapmam gerekiyordu:

  • Altta, İşlem Oluşturucuyu Oluşturucuyu seçmek için "Diğerleri seç ..." bağlantısı var. Linke tıklayınız. "Yapılandırmaya özel ayarları kullan" seçeneğini işaretleyin. seçmek "Standart Oluşturma İşlemi Başlatıcısı" ve "Tamam" a basın.
  • "Hata Ayıklayıcı" sekmesine gidin ve sekmenin üstünde "Hata ayıklayıcı: gdb / mi". Bir fark yaratamayabilir / olmayabilir: Aynı sekmede, "Kesme noktalarını ayarlamak için tam dosya yolunu kullan" onay kutusu da vardır - Bununla birlikte oynadım, ancak gözlemlediğimiz konuyu etkilemiyor gibi görünüyor (açıkçası, kaynak yollarımız zaten dolu yollardır).

Paylaşılan kitaplıklardaki kesme noktaları için, ek bilgilere (özellikle ertelenmiş sınır değerler) Eclipse cdt ve gdb ile hata ayıklama ve Eclipse cdt neden kesme noktalarını görmezden geliyor?.

Not: Bu Eclipse Kepler (4.3) ve gdb 7.4 anlamına gelir.


23
2017-10-26 11:22



Güzel cevap, bence doğru. Ayrıca bu soruya / .answer'a da bakmak isteyebilirsiniz: stackoverflow.com/q/801423/1284631 - user1284631
Benim durumumda, yukarıdaki tüm adımları boşa çıkardıktan sonra, gdb'nin (7.4) daha yeni bir sürümünü kurmanın onu düzelttiği sonucuna vardı. - harish


Aynı problem vardı, ama benim durumumda benim hatamdı. Projelerimden bazıları Sürüm yapılandırmasına ayarlandı ve hata ayıklayıcı doğal olarak kaynak dosya bilgilerini bulamadı.


2
2018-06-12 08:00



Bende aynı problem vardı. CMake projemi kullanarak yapılandırmayı unuttum -DCMAKE_BUILD_TYPE=Debug. - Ignitor


Bende aynı problem vardı. Programımdan farklı bir yerde derlenmiş bir paylaşılan kitaplık dosyasında (.so) bir kesme noktası belirleyemedim. Bunu düzeltmek için:

  1. Hata Ayıklama Yapılandırması, Kaynak sekmesine gidin
  2. Bir derleme dizini ekleme (Bu işlem için makefile bulunmayan) tüm işlemleri derleyen ana makefile konumunu kullandım).
  3. Ayrıca "Alt dizinler derleme için de kullanılır" ı tıklatın (alt işlem makefile ana konumun bir alt dizininde derlenir)

Gelecekte ve geçmişte tüm hata ayıklama yapılandırmaları için bu değişikliği nasıl yapacağımı anlayamadım, böylece bu dizini her seferinde eklemem gerekmeyecek, ancak bunu daha sonra anlamaya çalışacağım.


1
2017-12-17 16:45





Aynı problem vardı ama çözümüm farklıydı. Proje "debug / src" + "release / src" dizinlerini açın ve adlarını değiştirmiş ya da artık mevcut olmayan herhangi bir kaynak dosyanın adını içeren [dosyaadı] .d dosyalarının bulunmadığından emin olun. Bir tane vardı, silindi ve daha fazla hata olmadığından.

Bu nedenle, en azından benim durumumda, hataların kapsam dışında kalan nesneler tarafından oluşturulduğunu varsayardım.


0
2017-08-08 10:28





Bu, hem cygwin hem de mingw (veya başka bir varyant) varsa, bu olabilir. Eğer kaynağı derlemek için cygwin'den gcc kullanılıyorsa, çalıştırılabilir olarak cygwin yoluna sahip olacaksınız. Daha sonra, hata ayıklayıcı mingw'den geliyorsa gdb, cygwin yolunu yorumlayamayacaktır. Bunu çözmenin en kolay yolu Run -> Debug Configurations -> Debugger'a gidip cygwin gdb'nin tam yolunu (C: \ cygwin64 \ bin \ gdb.exe) belirlemektir. Bu benim için problemi çözdü.


0
2017-11-15 16:29





Hata Ayıklama Yapılandırmaları ayarlarında @Andreas Fester'ın Debugger sekmesindeki yorumunu izledim ancak "Hata Ayıklayıcı: gdb / mi" 'yi bulamıyorum, ancak Kaynak sekmesinde, tüm öğeleri kaldırdım ve "Mutlak Dosya Yolu" nu "Ekle" yi tıklatarak ekledim. pencerenin sağ tarafında. Bu bana bu konuda yardımcı oldu


0
2018-02-15 20:50





Makefile projesi için mevcut kod. adim 1 tüm kaynakları -g -o0 ile derleyin adim 2 sdk ve gdb takım zincirinizde sağlanacak gdbserver ve arm-yourversion-gdb'yi kullanın.


-1
2018-05-27 12:21