it-swarm-vi.tech

Có GUI gdb C ++ cho Linux không?

Tóm lại: Có ai biết GUI cho gdb mang nó ngang bằng hoặc gần với bộ tính năng bạn có trong phiên bản Visual C++ mới hơn không?

Cụ thể: Là một người đã dành nhiều thời gian để lập trình trong Windows, một trong những trở ngại lớn hơn mà tôi tìm thấy bất cứ khi nào tôi phải viết mã C++ trong Linux là việc gỡ lỗi bất cứ điều gì bằng cách sử dụng dòng lệnh gdb khiến tôi mất nhiều thời gian hơn so với trong Visual Studio, và nó dường như không trở nên tốt hơn khi thực hành. Một số điều chỉ dễ dàng hơn hoặc nhanh hơn để thể hiện bằng đồ họa.

Cụ thể, tôi đang tìm một GUI:

  • Xử lý tất cả các điều cơ bản như bước qua & vào mã, xem các biến và điểm dừng
  • Hiểu và có thể hiển thị nội dung của các kiểu dữ liệu C++ phức tạp và lồng nhau
  • Không bị nhầm lẫn bởi và tốt nhất là có thể bước thông minh qua mã cấu trúc và cấu trúc dữ liệu trong khi hiển thị thông tin có liên quan như các loại tham số
  • Có thể xử lý các ứng dụng luồng và chuyển đổi giữa các luồng khác nhau để xem qua hoặc xem trạng thái của
  • Có thể xử lý việc đính kèm vào một quy trình đã bắt đầu hoặc đọc kết xuất lõi, ngoài việc khởi động chương trình trong gdb

Nếu một chương trình như vậy không tồn tại, thì tôi muốn nghe về những trải nghiệm mà mọi người đã có với các chương trình đáp ứng ít nhất một số điểm nhấn. Có ai có bất cứ đề nghị?

Chỉnh sửa :
[.__.] Liệt kê các khả năng là tuyệt vời và tôi sẽ lấy những gì tôi có thể nhận được, nhưng sẽ hữu ích hơn nữa nếu bạn có thể đưa vào câu trả lời của mình:
[.__.] (a) Bạn có thực sự sử dụng GUI này hay không và nếu có, bạn có phản hồi tích cực/tiêu cực nào về nó.
[.__.] (b) Nếu bạn biết, những tính năng được đề cập ở trên là/không được hỗ trợ

Danh sách rất dễ xuất hiện, các trang web như thế này rất tuyệt vì bạn có thể biết được trải nghiệm cá nhân của mọi người với các ứng dụng.

204
HappyDude

Bạn sẽ không tìm thấy bất cứ điều gì chồng lên GDB có thể cạnh tranh với sức mạnh thô của trình gỡ lỗi Visual Studio. Nó quá mạnh và được tích hợp quá tốt trong IDE.

Đối với một thay thế Linux, hãy thử DDD nếu phần mềm miễn phí là thứ của bạn.

55
Vicent Marti

Eclipse CDT sẽ cung cấp trải nghiệm tương đương với việc sử dụng Visual Studio. Tôi sử dụng CDT Eclipse hàng ngày để viết mã và gỡ lỗi các quy trình cục bộ và từ xa.

Nếu bạn không quen với việc sử dụng IDE dựa trên Eclipse, GUI sẽ mất một chút để làm quen. Tuy nhiên, một khi bạn hiểu được các ý tưởng GUI duy nhất cho Eclipse (ví dụ: một phối cảnh), sử dụng công cụ này sẽ trở thành một trải nghiệm thú vị.

Công cụ CDT cung cấp một bộ chỉ mục C/C++ hợp lý cho phép bạn nhanh chóng tìm thấy các tham chiếu đến các phương thức trong cơ sở mã của mình. Nó cũng cung cấp một công cụ mở rộng macro Nice và hỗ trợ tái cấu trúc hạn chế.

Liên quan đến hỗ trợ gỡ lỗi, CDT có thể thực hiện mọi thứ trong danh sách của bạn ngoại trừ việc đọc kết xuất lõi (nó có thể hỗ trợ điều này, nhưng tôi chưa bao giờ thử sử dụng tính năng này). Ngoài ra, trải nghiệm của tôi với mã gỡ lỗi sử dụng các mẫu bị hạn chế, vì vậy tôi không chắc CDT sẽ cung cấp loại kinh nghiệm nào trong vấn đề này.

Để biết thêm thông tin về gỡ lỗi bằng cách sử dụng CDT của Eclipse, bạn có thể muốn xem các hướng dẫn sau:

84
Jon Ball

gdb -tui hoạt động ổn nếu bạn muốn một cái gì đó GUI-ish, nhưng vẫn dựa trên ký tự.

78
Carleton

Hãy xem Trình gỡ lỗi Nemiver C/C++ . Nó rất dễ cài đặt trong Ubuntu (Công cụ dành cho nhà phát triển/Gỡ lỗi).

Cập nhật: Liên kết mới.

47
Sergey Shandar

Tôi không thích ý tưởng phát triển Windows, nhưng trình gỡ lỗi VC++ là một trong những chương trình tốt nhất tôi từng thấy. Tôi chưa tìm thấy giao diện người dùng GUI gần với VC.

GDB thật tuyệt vời khi bạn thực sự quen với nó. Sử dụng nó trong sự tức giận đủ và bạn sẽ trở nên rất thành thạo. Tôi có thể quay cuồng xung quanh một chương trình làm tất cả những điều bạn liệt kê mà không cần nỗ lực nhiều nữa. Phải mất khoảng một tháng đau khổ vì liên kết SSH đến một máy chủ từ xa trước khi tôi thành thạo. Tôi sẽ không bao giờ quay trở lại.

DDD thực sự mạnh mẽ nhưng nó khá lỗi. Tôi thấy nó bị đóng băng khá thường xuyên khi nhận được tin nhắn từ GDB rằng nó không bị mò mẫm. Thật tốt vì nó có cửa sổ giao diện gdb để bạn có thể thấy những gì đang diễn ra và cũng có thể tương tác trực tiếp với gdb. DDD không thể được sử dụng trên một phiên X từ xa trong môi trường của tôi (một vấn đề thực sự, vì tôi đang ngồi ở một máy khách mỏng khi tôi làm Unix dev) vì một số lý do vì vậy nó phù hợp với tôi.

KDevelop theo phong cách KDE điển hình và tiếp xúc MỌI THỨ cho người dùng. Tôi cũng chưa bao giờ gặp may mắn khi gỡ lỗi các chương trình phi phát triển trong KDevelop.

Studio lập trình Gnat (GPS) thực sự là một mặt trước khá tốt cho GDB. Nó không chỉ quản lý các dự án Ada, vì vậy, đáng để thử nếu bạn cần một trình gỡ lỗi.

Bạn có thể sử dụng Eclipse, nhưng nó có trọng lượng khá nặng và rất nhiều người Unix dày dạn mà tôi đã làm việc (bao gồm cả tôi) không quan tâm nhiều đến giao diện của nó, điều này sẽ không chỉ là STFU và tránh xa bạn. Nhật thực dường như cũng chiếm rất nhiều không gian và chạy như một con chó.

29
Adam Hawes

Qt Creator có vẻ như là thứ tốt. Một đồng nghiệp chỉ cho tôi một cách thiết lập để gỡ lỗi:

  • Tạo một dự án mới, "Nhập dự án dựa trên Makefile".
  • Trỏ nó vào thư mục dự án gốc của bạn (nó sẽ lập chỉ mục các nguồn theo nó, và nó rất nhanh một cách ấn tượng).
  • Đi đến cài đặt dự án và thêm cấu hình chạy, sau đó chỉ định tệp thực thi bạn muốn gỡ lỗi và các đối số của nó.
  • Qt Creator dường như khăng khăng xây dựng dự án của bạn trước khi gỡ lỗi. Nếu bạn không muốn điều đó hoặc không sử dụng make, bạn có thể ghi đè lệnh make. Tôi đã thay đổi nó thành "đúng". :)

Điều đó có vẻ như hơi nhiều công việc để gỡ lỗi một ứng dụng tôi đã biên dịch, nhưng nó đáng giá. Trình gỡ lỗi hiển thị các luồng, ngăn xếp và các biến cục bộ theo cách tương tự như Visual Studio và thậm chí sử dụng nhiều phím tắt giống nhau. Nó dường như xử lý tốt các mẫu, ít nhất là std :: string và std :: map. Việc gắn vào các quy trình hiện tại và các bãi chứa cốt lõi dường như được hỗ trợ, mặc dù tôi chưa thử nghiệm nó.

Hãy nhớ rằng tôi đã sử dụng nó ít hơn và giờ, nhưng tôi đã rất ấn tượng cho đến nay.

28
Soulman

Tôi sử dụng gdb, đơn giản và hữu ích

26
cod

Tôi sử dụng DDD rất nhiều và nó khá mạnh mẽ khi bạn học cách sử dụng nó. Một điều tôi muốn nói là đừng sử dụng nó trên X trên WAN bởi vì nó dường như thực hiện rất nhiều cập nhật màn hình không cần thiết.

Ngoài ra, nếu bạn không được giao phối với GDB và không bận tâm đến việc kiếm một ít tiền, thì tôi sẽ thử TotalView. Nó có một chút đường cong học tập dốc (chắc chắn có thể trực quan hơn), nhưng đó là trình gỡ lỗi C++ tốt nhất tôi từng sử dụng trên bất kỳ nền tảng nào và có thể được mở rộng để hướng nội các đối tượng của bạn theo cách tùy chỉnh (do đó cho phép bạn xem Danh sách STL là một danh sách thực tế của các đối tượng và không phải là một loạt các thành viên dữ liệu nội bộ khó hiểu, v.v.)

16
Nick Bastin

Kiểm tra dự án CDT của Eclipse. Nó là một plugin cho Eclipse hướng đến sự phát triển C/C++ và bao gồm một phối cảnh gỡ lỗi khá giàu tính năng (đằng sau hậu trường sử dụng GDB). Nó có sẵn trên nhiều nền tảng.

8
user14636

Tương tự thoải mái với giao diện gdb của Eclipse là giao diện emacs, gắn chặt với IDE của emacs. Nếu bạn đã làm việc với emacs, bạn sẽ thích nó:

GDB Emacs Frontend

7

Tôi đã sử dụng KDbg (chỉ hoạt động theo KDE).

6
codeguru

Qt Creator-on-Linux chắc chắn ngang hàng với Visual Studio-on-Windows cho C++ ngày nay. Tôi thậm chí sẽ nói tốt hơn về phía trình gỡ lỗi.

5
Marv

Có một IDE bị thiếu trong danh sách này và rất hiệu quả (Tôi đã sử dụng nó trong nhiều dự án C/C++ mà không gặp vấn đề gì): Netbeans .

5
Florent

DDD là GNU lối vào cho gdb: http://www.gnu.org/software/ddd/

5
mmattax

Tôi đã thử một vài guis khác nhau cho gdb và thấy DDD là tốt hơn trong số họ. Và trong khi tôi không thể nhận xét về các dịch vụ khác, không phải là gdb cho linux, tôi đã sử dụng một số trình gỡ lỗi khác trên các nền tảng khác.

gdb thực hiện phần lớn những thứ bạn có trong danh sách mong muốn của mình. DDD đặt một mặt trận đẹp hơn trên chúng. Ví dụ chuyển đổi chủ đề được thực hiện đơn giản hơn. Đặt điểm dừng là đơn giản như bạn mong đợi.

Bạn cũng có được một cửa sổ cli trong trường hợp có điều gì đó tối nghĩa mà bạn muốn làm.

Một tính năng của DDD nổi bật hơn bất kỳ trình gỡ lỗi nào khác mà tôi đã sử dụng là "biểu đồ" dữ liệu. Điều này cho phép bạn hiển thị và sắp xếp các cấu trúc, đối tượng và bộ nhớ dưới dạng các hộp có thể kéo. Nhấp đúp vào một con trỏ sẽ mở ra dữ liệu được loại bỏ với các liên kết trực quan trở lại cha mẹ.

5
Andrew Edgecombe

Bạn đã bao giờ xem trình gỡ lỗi DS-5 chưa?

Có một phiên bản trả phí bao gồm rất nhiều tính năng hữu ích, nhưng bạn cũng có thể sử dụng Community Edition miễn phí (cũng khá hữu ích đặc biệt đối với các hệ thống nhúng).

Tôi có trải nghiệm tích cực với công cụ này khi gỡ lỗi các ứng dụng Android trên thiết bị thực bằng Eclipse.

3
Viktor Malyi

Là một người quen thuộc với Visual Studio, tôi đã xem xét một số IDE nguồn mở để thay thế nó và KDevelop trở thành IMO gần nhất để trở thành thứ mà một người Visual C++ có thể ngồi xuống và bắt đầu sử dụng. Khi bạn chạy dự án ở chế độ gỡ lỗi, nó sử dụng gdb nhưng kdevelop xử lý khá nhiều việc để bạn không phải biết đó là gdb; bạn chỉ là một bước duy nhất hoặc gán đồng hồ cho các biến.

Thật không may, nó vẫn không tốt như Visual Studio Debugger.

3
Dennis Ferron

Bạn không đề cập đến việc bạn đang sử dụng Windows hay UNIX.

Trên các hệ thống UNIX, KDevelop là tốt nhưng tôi sử dụng KDbg vì nó dễ sử dụng và cũng sẽ hoạt động với các ứng dụng không được phát triển trong KDevelop.

Eclipse là tốt trên cả hai nền tảng.

Trên Windows, có một gói tuyệt vời có tên Wascana Desktop Developer đó là CDT và MinGW của Eclipse, tất cả được đóng gói và cấu hình sẵn độc đáo cho mức độ đau tối thiểu. Đó là điều tốt nhất tôi đã tìm thấy để phát triển mã GNU trên Windows.

Tôi đã sử dụng tất cả các trình gỡ lỗi này và không ai trong số chúng tốt như MS Dev Studio. Eclipse/Wascana có lẽ là gần nhất nhưng nó có những hạn chế như bạn không thể bước vào DLL và nó không làm tốt công việc kiểm tra các biến.

3
Adam Pierce

Những gì có thể được thực hiện sẽ bị giới hạn bởi thông tin gỡ lỗi mà g ++ tạo ra, ở một mức độ lớn. Emacs cung cấp giao diện cho gdb cho phép bạn điều khiển nó thông qua các thanh công cụ/menu và hiển thị dữ liệu trong các cửa sổ riêng biệt, cũng như nhập trực tiếp các lệnh gdb. CDT của Eclipse cung cấp các công cụ tương tự. Tôi đã nghe nói về Anjuta và Code :: Blocks nhưng chưa bao giờ sử dụng chúng.

3
Allen

Code: Blocks C++ IDE có trình bao bọc đồ họa, với một vài tính năng bạn muốn, nhưng không có gì giống như sức mạnh của VS.

2
crobar

VisualGDB là một plugin Visual Studio khác để phát triển và gỡ lỗi các ứng dụng trên nền tảng linux và nhúng.

2
Sergey Zhukov

Bạn đã thử gdb -w với cygwin gdb. Nó có khả năng có một giao diện windows hoạt động khá tốt.

Vấn đề duy nhất tôi tìm thấy là trên máy hiện tại của tôi, nó không chạy theo cách đó cho đến khi tôi cài đặt ddd. Tôi nghi ngờ rằng nó yêu cầu tcltk đã được cài đặt khi tôi cài đặt ddd.

1
BubbaT

KDevelop hoạt động khá tốt.

1
Harold Ekstrom

Nếu bạn đang tìm kiếm gdb trong Visual Studio, thì hãy kiểm tra WinGDB .

0
Dominic.wig

Phiên bản mới nhất của Geany hỗ trợ nó (mặc dù chỉ có trên Linux)

0
Milan Babuškov

Trong 15 tháng qua tôi sử dụng cái nhìn sâu sắc (đi kèm với FC6). Nó không tuyệt vời, nó được viết bằng Tcl/Tk, nhưng nó đơn giản và hữu ích. DDD có chất lượng/tiện ích tương tự, nhưng hơi khó sử dụng hơn (nhiều vấn đề và sơ đồ GUI khác nhau). Tôi cũng đã cố gắng tích hợp gdb với IDE của tôi, SlickEdit. Nó hoạt động tốt (tôi đã chơi 4 giờ với nó), nhưng tôi không thích các công tắc bối cảnh GUI. Tôi thích IDE của tôi không thay đổi trong khi tôi gỡ lỗi; trên Windows tôi sử dụng SlickEdit cho IDE và Trình gỡ lỗi Visual Studio để gỡ lỗi. Vì vậy, từ 3: Insight, DDD và SlickEdit, Insight là lựa chọn số 1 của tôi, tôi sử dụng nó> 95% thời gian, gdb dòng lệnh và DDD chiếm 5% còn lại. Nếu tôi có cơ hội, tôi sẽ đánh giá Eclipse vào một lúc nào đó, PC làm việc của tôi dường như không có đủ RAM (chỉ 1GB) để chạy Eclipse một cách hợp lý.

Tôi cũng đã nghe rất nhiều lời khen ngợi về TotalView, bao gồm cả tay đầu tiên trong một cuộc phỏng vấn xin việc. Tôi đã nhận được một eval cho công ty của chúng tôi vào cuối năm 2008, nhưng cuối cùng chúng tôi đã không tiến hành vì gdb là đủ tốt cho nhu cầu của chúng tôi; và nó là miễn phí và có mặt khắp nơi.

0
Radim Cernej

Tôi đã tìm kiếm một trình gỡ lỗi để bước qua một chương trình đang chạy. Nói: Đính kèm. Chương trình được xây dựng với Eclipse, nhưng vì có thể một số vật cản đa luồng, không có tệp nguồn nào thích. Bất cứ điều gì.

Tôi đã rất đáng tiếc với NetBeans.

  • [gỡ lỗi] từ menu -> Đính kèm Deugger ...
  • như quá trình đã chọn một để gỡ lỗi
  • như dự án [dự án mới]

Bây giờ cửa sổ biến mất và bạn không thấy gì. tách ra khỏi quá trình. Quảng trường đọc "Dừng" giúp.

  • nguồn nhập từ dự án như ví dụ thư mục. ".../Dự án/src
  • Bây giờ nó xuất hiện trong dự án của bạn và bạn có thể đặt điểm dừng.
  • một lần nữa trình gỡ lỗi ttach
  • đã chọn quá trình để gỡ lỗi.
  • trình gỡ lỗi nên dừng nếu chương trình đạt đến điểm dừng tiếp theo.

Chuyển đến [cửa sổ] -> [Gỡ lỗi] -> Cửa sổ của bạn có phù hợp không.

0
Cutton Eye

Sử dụng www.zero-bugs.com/ Trình gỡ lỗi Zero, nó yêu cầu hỗ trợ C++ 0x từ gcc

0
siddhusingh