2011-01-18 13 views
7

Piszę program, który szeroko wykorzystuje wektory i rozwijam się z Qt Creator 2.0.1 na Mac OS X 10.6.6 po raz pierwszy.Jak sprawić, aby debugger Qt Creator pokazywał zawartość wektorów C++ w OS X?

Jak ja debugowania, widzę literały i tablice dobrze w oknie Locals and Watchers, ale jak tylko udać się do rozwinięcia wektor, w tym przypadku typu Student, otrzymuję ten drzewa:

alt text

Inna osoba, nad którą pracuję, używa tej samej wersji Qt Creator na Ubuntu i może bez problemu zobaczyć zawartość wektorów. Co ja robię źle?

To jego debugger:

alt text

Odpowiedz

8

QtCreator 2.6 obsługuje wsparcie dla Mac FSF GDB (7.5). FSF GDB obsługuje python, który pozwala qtcreatorowi poprawnie wyświetlać QVector, QSet, QList, QString itp. Można go pobrać z Macports.

  1. pobrać i zainstalować MacPorts (pobierz go stąd http://www.macports.org/install.php)
  2. Aby zainstalować FSF GDB 7.5:

     sudo port install gdb 
    
  3. wyrazić zgodę FSF GDB do debugowania aplikacji:

    sudo codesign -s gdb-cert /opt/local/bin/ggdb 
    

    Jeśli gdb-cert nie zostanie znaleziony, utwórz certyfikat gdb, klikając poniższy link i postępuj zgodnie ze wskazówkami " Tworzenie certyfikatu ":

    http://sourceware.org/gdb/wiki/BuildingOnDarwin

    Jeśli nie wyrażają zgodę na ggdb, dostaniesz:

    Unable to find Mach task port for process-id 28885: (os/kern) failure (0x5). 
    (please check gdb is codesigned - see taskgated(8)) 
    
  4. Zmień debuggera kit w Qt Creator enter image description here

    Zmień ścieżkę z/usr/bin/gdb na/opt/local/bin/ggdb

  5. Domyślnie FSF GDB nie obsługuje poprawnie punktów przerwania, ponieważ klasa mac clang ++ nie eksportuje symboli debugowania. Aby wyeksportować symbole debugowania, dsymutil należy uruchomić ręcznie.Na szczęście polecenie dysmutil można uruchomić automatycznie po połączeniu programu za pomocą qmake. Dodaj następujące linie w pliku .pro:

    macx { 
        CONFIG(debug, debug|release) { 
         QMAKE_POST_LINK = dsymutil \"MyApp.app/Contents/MacOS/MyApp\" 
        } 
    } 
    
+0

To całkowicie rozwiązało problem. Dzięki wielkie. – David

+0

Wielkie dzięki! Przy okazji, krok 5 nie był dla mnie konieczny. Być może, naprawili to? –

3

Trzeba zbudować pomocnika debugowania. Powinien być pod Narzędzia -> Opcje ...

Po zbudowaniu pomocnika do debugowania można wizualizować std :: string, QString i kontenery.

Powinien być przycisk odbudowy w tym samym miejscu, w którym wybierasz wersję Qt.

http://www.qtcentre.org/threads/31862-quot-No-valid-Qt-version-set.-Set-one-in-Tools-Options-quot-Windows-QtCreator

+0

To nie struny mam problemy z, to std :: wektory. Widzę, że struny, int i znaki i tablice są w porządku. Również odbudowa nie pomogła; dzięki za sugestię. – DanBlakemore

0

Obie odpowiedzi są rodzajem rację: nie można używać pytona oparte pomocników debugowania na Mac, nadal istnieje C++ wersja tego, który współpracuje z gdb Apple.

Powiązane problemy