SORU
9 Ocak 2009, Cuma


Standart konteyner (:: std göster) teftiş gdb ile içeriğini

Böyle bir şey var diyelim:

#include <map>
int main(){
    std::map<int,int> m;
    m[1] = 2;
    m[2] = 4;
    return 0;
}

Harita içeriğini incelemek mümkün gdb programı çalıştırmayı olmak istiyorum.< / ^ br . Ben indis operatörü kullanmayı deneyin.

(gdb) p m[1]
Attempt to take address of value not located in memory.

Yöntemini kullanarak daha iyi sonuçlar vermez

(gdb) p m.find(1)
Cannot evaluate function -- may be inlined

Bir şekilde bunu yapmak için var mı?

CEVAP
11 Mart 2013, PAZARTESİ


Bu soruya cevap mevcutçokgüncel. Son GCC ve GDB ile çok işe YarıyorTMsayesinde yerleşik GDB 7 desteği Python.x ve GCC ile libstdc oldukça yazıcılar.

OP örneğin:

(gdb) print m
$1 = std::map with 2 elements = {[1] = 2, [2] = 4}

Eğer otomatik olarak çalışması için değil mi GDB wiki STL Support sayfada ilk madde işareti noktasını görüyorsunuz.

Kendi türleri için Python oldukça yazıcılar da yazıyorum, GDB manuel Pretty Printing görebilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • jat4011

    jat4011

    16 EKİM 2010
  • TheScorpioTechno

    TheScorpioTe

    15 Aralık 2010
  • TurkishRoyal

    TurkishRoyal

    16 Ocak 2007