2011-01-18 19 views
7

Tôi đang viết một chương trình sử dụng rộng rãi vectơ và đang phát triển với Qt Creator 2.0.1 trên Mac OS X 10.6.6 lần đầu tiên.Làm cách nào để trình gỡ lỗi của Qt Creator hiển thị nội dung của các vectơ C++ trong OS X?

Như tôi đang gỡ lỗi, tôi có thể nhìn thấy chữ và mảng tốt trong Locals and Watchers cửa sổ, nhưng ngay sau khi tôi đi đến mở rộng một vector, trong trường hợp này loại Student, tôi nhận được cây này:

alt text

Người khác mà tôi đang làm việc với điều này là sử dụng cùng phiên bản Qt Creator trên Ubuntu và có thể xem nội dung của vectơ tốt. Tôi đang làm gì sai?

Đây là chương trình gỡ rối của mình:

alt text

Trả lời

8

QtCreator 2.6 có hỗ trợ cho Mac FSF GDB (7.5) hỗ trợ. FSF GDB hỗ trợ python cho phép qtcreator hiển thị đúng QVector, QSet, QList, QString, v.v. Nó có thể tải xuống từ macports.

  1. Tải về và cài đặt macports (tải về từ đây http://www.macports.org/install.php)
  2. Để cài đặt FSF GDB 7.5:

     sudo port install gdb 
    
  3. Cho FSF GDB phép ứng dụng debug:

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

    Nếu không tìm thấy gdb-cert, hãy tạo gdb-cert bằng cách nhấp vào liên kết bên dưới và làm theo hướng dẫn cho " Tạo một chứng chỉ ":

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

    Nếu bạn không cho phép ggdb, bạn sẽ nhận được một:

    Unable to find Mach task port for process-id 28885: (os/kern) failure (0x5). 
    (please check gdb is codesigned - see taskgated(8)) 
    
  4. Thay đổi debugger kit trong QtCreator enter image description here

    Thay đổi đường dẫn từ/usr/bin/gdb thành/opt/local/bin/ggdb

  5. Theo mặc định FSF GDB không xử lý các điểm ngắt chính xác vì mac clang ++ không xuất các biểu tượng gỡ lỗi. Để xuất các biểu tượng gỡ lỗi, dsymutil cần phải được chạy thủ công.May mắn thay, lệnh dysmutil có thể được chạy tự động sau khi liên kết chương trình bằng cách sử dụng qmake. Thêm các dòng sau trong file .pro của bạn:

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

Điều này giải quyết được vấn đề cho tôi hoàn toàn. Cám ơn rất nhiều. – David

+0

Cảm ơn rất nhiều! BTW, bước 5 không cần thiết cho tôi. Có lẽ, họ đã sửa nó? –

3

Bạn cần phải xây dựng các helper gỡ lỗi. Nên ở dưới Công cụ -> Tùy chọn ...

Khi trình trợ giúp gỡ lỗi được tạo, bạn có thể trực quan hóa std :: string, QString và các vùng chứa.

Nên có nút xây dựng lại ở cùng một nơi với nơi bạn chọn phiên bản Qt để sử dụng.

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

+0

Nó không phải là chuỗi Tôi đang gặp rắc rối với, đó là std :: vector. Tôi có thể thấy chuỗi và ints và ký tự và mảng chỉ tốt. Ngoài ra, việc xây dựng lại không giúp được gì; Nhờ đề nghị mặc dù. – DanBlakemore

0

Hai câu trả lời là loại quyền: người ta không thể sử dụng python dựa giúp việc gỡ lỗi trên mac, vẫn còn một ++ phiên bản C của nó làm việc với gdb của Apple.

Các vấn đề liên quan