Trang Chủ Tài chính Cá nhân Dừng lại và Tiếp tục từ một Breakpoint - núm vú

Dừng lại và Tiếp tục từ một Breakpoint - núm vú

Mục lục:

Video: Hướng dẫn kỹ thuật Debug VBA trong Excel 2025

Video: Hướng dẫn kỹ thuật Debug VBA trong Excel 2025
Anonim

Học cách sử dụng trình gỡ lỗi là một trong những điều quan trọng nhất mà bạn có thể làm để nâng cấp trò chơi C + + của mình. Sau đây là các bước cần thiết để thiết lập một breakpoint, dừng chương trình của bạn, kiểm tra một vài biến, và tiếp tục chương trình.

Vào mùa xuân năm 2014, Mã số:: Các khối không tích hợp với trình sửa lỗi cho máy Mac, vì vậy nếu bạn là người dùng máy Mac, các ví dụ này có thể không phù hợp với bạn.

Trình gỡ rối là gì?

Trước khi đi xa hơn, nó có thể giúp đỡ nếu bạn hiểu những gì một trình sửa lỗi. Trình gỡ lỗi là một chương trình riêng biệt cho phép bạn kiểm soát chương trình thực thi của mình. Cụ thể nó cho phép bạn ngừng thực hiện chương trình tại các dòng mã cụ thể, để kiểm tra giá trị của biến, để thay đổi giá trị của các biến, và để tiếp tục thực hiện chương trình.

Trình gỡ lỗi GNU có một giao diện dòng lệnh rất khó nhớ và rất khó sử dụng (đó là kết hợp chiến thắng nếu bạn từng nghe đến). May mắn thay, Mã số:: Blocks cung cấp một giao diện đồ họa gần như liền mạch với trình gỡ rối GNU. Trong khi bạn nhấp vào cửa sổ trình soạn thảo và kích hoạt các menu thả xuống, Mã:: Các khối gửi các lệnh bí ẩn tới trình gỡ lỗi trong nền và sau đó giải thích và hiển thị đồ họa các kết quả. Nó không phải là tuyệt vời khi hai chương trình chat-chat ở chế độ nền để bạn tiết kiệm công việc?

Cách tốt nhất để tìm hiểu về trình gỡ lỗi là chỉ cần làm theo các ví dụ này.

Thiết lập chương trình của bạn để sử dụng trình gỡ rối

Bạn cần phải xây dựng chương trình bằng cách sử dụng các cài đặt trình biên dịch đặc biệt nếu bạn định chạy nó dưới sự kiểm soát của trình gỡ lỗi. Cách dễ nhất để làm điều này là ngay từ đầu, khi bạn tạo dự án của mình lần đầu tiên. Sau khi bạn đã xác định rằng bạn muốn tạo một ứng dụng Console và cung cấp tên của chương trình, Code:: Blocks sẽ hỏi bạn có muốn xây dựng chương trình của bạn trong cấu hình gỡ lỗi, Release configuration hay cả hai, như thể hiện trong hình 1 Hãy chắc chắn rằng cấu hình gỡ lỗi được kích hoạt.

Một chương trình trong cấu hình Gỡ lỗi bao gồm rất nhiều thông tin bổ sung mà trình gỡ lỗi cần để làm phép thuật của nó. Thông tin này bao gồm

Địa chỉ của mỗi dòng mã nguồn C ++

  • Địa chỉ của mỗi biến

  • Tên và kiểu trang của mỗi lớp trong chương trình

  • Tất cả thông tin trình gỡ rối này thêm rất nhiều chương trình thực thi - hàng trăm kilobyte trở lên. Không gian này là hoàn toàn không cần thiết nếu bạn không có ý định chạy chương trình dưới sự kiểm soát của trình gỡ lỗi, vì vậy Code:: Blocks cung cấp cho bạn tùy chọn xây dựng các file thực thi mà không có thông tin này trong cái được gọi là Release configuration.Các chương trình phát hành nhỏ hơn, tải nhanh hơn và thậm chí thực hiện nhanh hơn.

Nếu bạn kích hoạt cả cấu hình Gỡ lỗi và Giải phóng trong dự án của mình, thì bạn sẽ chọn thời gian xây dựng loại thực thi mà bạn đang cố gắng xây dựng.

Có hai sự khác nhau giữa các cấu hình Gỡ lỗi và Giải phóng:

Cấu hình Gỡ lỗi bao gồm tùy chọn trình biên dịch

  • -g . Tùy chọn này cho trình biên dịch bao gồm thông tin biểu tượng trong tệp thực thi cuối cùng. Đây là tất cả những thứ đã đề cập ở trên - địa chỉ của mỗi dòng mã và của mỗi biến, cũng như mô tả của mọi lớp được sử dụng trong chương trình của bạn.

    Trình tối ưu hoá mã được tắt trong cấu hình Gỡ lỗi và được bật trong cấu hình Phát hành.

  • Trình tối ưu hoá mã GNU tạo ra các chương trình chạy nhanh hơn, nhưng nó thực hiện bằng cách di chuyển các hướng dẫn xung quanh bằng những cách có thể gây nhầm lẫn khi bạn gỡ lỗi chương trình của mình. Cấu hình phát hành không bao gồm chuyển đổi

    -g và cho phép một số cấp độ tối ưu hóa thông qua việc bao gồm chuyển đổi -O . Hãy chắc chắn rằng bạn đang xây dựng Debug release bằng cách chọn Build → Select Target → Debug, như thể hiện trong hình 2.

Hình 2: Bạn vẫn phải đảm bảo rằng bạn đang xây dựng các file thực thi gỡ lỗi, nếu bạn bật cấu hình Gỡ lỗi khi tạo dự án của mình.

Khôi phục lại chương trình bằng cách chọn Build → Rebuild.

Ngừng tại một điểm dừng

Để thiết lập một điểm ngắt, chỉ cần bấm vào khu vực phía bên phải của dòng - khu vực này được biết đến trong Mã:: Chặn các mốc như là

trough. Dòng không chỉ xuất hiện màu khác, chỉ ra rằng trình soạn thảo đã chọn nó, nhưng một dấu hiệu dừng nhỏ xuất hiện trong máng, như thể hiện trong hình 3. Đây là dấu hiệu cho thấy một điểm dừng đã được đặt ở dòng 11 Hình 3: Mã:: Các khối sử dụng một dấu hiệu dừng nhỏ dễ thương để chỉ ra khi một điểm dừng được thiết lập.

Bạn có thể thiết lập nhiều breakpoint như bạn muốn trong một thời gian, nhưng điểm breakpoint này sẽ tốt cho ví dụ này.

Ở đây, bạn có thể bắt đầu chương trình bằng cách sử dụng tùy chọn Debug → Start / Continue trong hình 4.

Hình 4: Khởi động (hoặc tiếp tục) thực hiện chương trình bằng cách sử dụng tùy chọn Debug-> Start / Continue.

Chương trình bắt đầu thực hiện như bình thường nhưng dừng gần như ngay lập tức với một mũi tên màu vàng nhỏ chỉ vào dòng 11 như trong Hình 5. Ngoài ra, một cửa sổ trống sẽ thường chứa chương trình xuất xuất hiện. Không có gì xuất hiện trong đầu ra chương trình vì dòng 11 vẫn chưa được thực thi.

Hình 5: Việc thực hiện chương trình dừng ngay khi chương trình gặp một breakpoint.

Wow! Đó là mát mẻ.

Tiếp tục thực hiện chương trình

Bạn có thể thiết lập một breakpoint trên dòng kế tiếp và chọn Debug → Start / Continue để tiếp tục thực hiện chương trình tới dòng kế tiếp nếu bạn muốn; tuy nhiên, vì đây là một điều phổ biến để làm, Code:: Blocks cung cấp tùy chọn Debug → Next Line, có nghĩa là "Thực thi chương trình tới dòng tiếp theo."

Làm như vậy sẽ làm cho chương trình nhấp nháy trong giây lát khi điều khiển truyền đến chương trình chỉ đủ dài để thực thi dòng 11 trước khi dừng lại, như thể hiện trong hình 6.

Hình 6: Thực hiện các lệnh dòng lệnh Tiếp theo trình gỡ lỗi để thực hiện một dòng trong chương trình.

Bạn có thể lặp lại quá trình này thường xuyên như bạn muốn, có hiệu quả đơn bước theo cách của tôi thông qua chương trình.

Khi bạn đến một cuộc gọi chức năng, Next Line vẫn ở chế độ hiện tại, thực hiện toàn bộ chức năng như thể nó chỉ là một dòng (ở mức này). Nếu bạn muốn vượt qua kiểm soát đối với cuộc gọi chức năng, hãy chọn Debug → Step Into thay vào đó. Điều này chỉ làm việc cho các chức năng mà bạn có mã nguồn - điều này không làm việc rất tốt cho các chức năng thư viện C + +.

Bất kỳ lúc nào bạn cảm thấy mệt mỏi với bước đơn lẻ xung quanh, bạn có thể chấm dứt chương trình bằng cách chọn Debug → Stop Debugger. Không chỉ làm điều này ngừng gỡ lỗi, nhưng nó cũng dừng chương trình của bạn.

Xem xét các biến

Việc đơn bước qua chương trình của bạn là một cách tuyệt vời để cảm thấy chương trình của bạn đang ở đâu nhưng có thể khó hiểu vì sao bạn không thể kiểm tra các biến mà nó sử dụng để đưa ra quyết định. Ví dụ, khi bạn bước một chương trình ví dụ, bạn có thể nhận thấy rằng điều khiển không nhập vòng lặp

cho cả. Tại sao vậy? Bạn dừng chương trình bằng cách chọn Debug → Stop Debugger hoặc nhấn Shift + F8 và khởi động lại bằng cách chọn Debug → Start / Continue hoặc nhấn F8. Một bước bằng cách chọn Debug → Next Line hoặc nhấn F7 cho đến khi thực thi bắt đầu từ vòng lặp

cho . Lần này, hãy đảm bảo rằng cửa sổ Xem được hiển thị bằng cách chọn Debug → Debugging windows → Đồng hồ. Một cửa sổ như trong hình 7 xuất hiện cho thấy các giá trị của các đối số và bất kỳ biến địa phương. Lưu ý rằng nNumberofArgs là 1, chỉ cần tên của chính chương trình. Kể từ khi tôi bắt đầu với một giá trị là 1, vòng lặp sẽ không bao giờ được thực hiện. Thêm các biến số xem pszArgs [0] và pszArgs [1] để xem những gì chúng chứa: tên của chương trình và một giá trị null. Aha! Chương trình không có đối số để lặp lại.

Hình 7: Cửa sổ Watch cho phép lập trình viên xem giá trị của các biến.

Bạn có thể thay đổi đối số cho chương trình bằng cách chọn Dự án → Đặt các 'Lập luận của Chương trình. Trong cửa sổ này, bạn có thể đặt bất cứ đối số nào bạn muốn.

Lưu ý rằng cửa sổ Watch hiển thị cho tôi tên của biến, kiểu và giá trị của nó. Bạn không thể thay đổi loại của nó, nhưng bạn có thể thay đổi giá trị của nó từ cửa sổ này, nếu bạn muốn. Thay đổi giá trị của

nNumberofArgs không phải là rất hữu ích, nhưng đôi khi thay đổi giá trị của một biến cho phép tôi thực hiện việc thực hiện xuống một con đường khác nhau chỉ để xem những gì có thể xảy ra. Tiếp tục một chương trình đã dừng

Một mẹo cần nhớ là nó đôi khi có thể gây nhầm lẫn vì tại sao một chương trình bị dừng lại. Không phải tất cả các chương trình đã ngừng hoạt động đều nằm trong sự kiểm soát của trình gỡ lỗi. Đôi khi họ đang chờ đợi đầu vào từ người dùng.

Để xem hiệu ứng này, chỉ cần một bước chương trình PrintArgs cho đến khi kiểm soát đến dòng 26.Khi bạn chọn Next Line, con trỏ biến mất như thể hiện trong hình 8. Đi qua là mũi tên màu vàng dễ chịu nhắc nhở bạn về nơi bạn đang ở trong chương trình. Chuyện gì đã xảy ra?

Hình 8: Điều khiển dường như biến mất khi chương trình đang chờ người dùng nhập vào.

Điều gì đã xảy ra là chương trình đang đợi tôi nhấn Enter trên bàn phím. Trước tiên, bạn phải chọn cửa sổ chương trình. Sau đó, bạn có thể nhấn Enter (bạn có thể cần phải làm điều này nhiều lần). Đã làm điều đó, dường như không có gì xảy ra trong cửa sổ chương trình bởi vì kiểm soát bây giờ đã được chuyển trở lại trình gỡ lỗi trong cửa sổ Code:: Blocks. Khi bạn chọn lại cửa sổ đó, bạn sẽ thấy mũi tên màu vàng trấn an nói với tôi rằng Mã số:: Các khối đang trở lại trong sự kiểm soát.

Khi bạn đang thực hiện chương trình của bạn dưới trình gỡ rối và kiểm soát dường như chỉ mất đi, chương trình có thể đang chờ nhập dữ liệu từ bàn phím. Chuyển sang cửa sổ chương trình để xem liệu đó là trường hợp. Nếu có, ngay khi bạn nhập một cái gì đó, điều khiển sẽ trở lại trình gỡ lỗi.

Dừng lại và Tiếp tục từ một Breakpoint - núm vú

Lựa chọn của người biên tập

Làm thế nào để Lưu tệp vào OneDrive từ iPad của bạn - núm vú

Làm thế nào để Lưu tệp vào OneDrive từ iPad của bạn - núm vú

Chia sẻ là chăm sóc và bạn có thể lưu tệp Word, Excel hoặc PowerPoint vào iPad hoặc máy tính để bàn của bạn trực tiếp vào thư mục OneDrive. Sau khi tệp tin trên OneDrive, những người khác có quyền truy cập vào thư mục trên OneDrive có thể mở tệp. Họ có thể mở nó trong Văn phòng cho ứng dụng iPad, Office ...

Làm thế nào để liên kết đến một tập tin cục bộ trong Office 2011 for Mac - núm vú

Làm thế nào để liên kết đến một tập tin cục bộ trong Office 2011 for Mac - núm vú

Một trong các công cụ hữu ích nhất trong Office 2011 cho mac là khả năng tạo siêu liên kết đến bất cứ đâu. Bạn có thể liên kết đến bất kỳ tập tin nào trên máy tính của bạn; những tập tin này là các tập tin địa phương. Để kết nối với các tệp cục bộ, bạn có thể sử dụng hai loại liên kết: Tuyệt đối: Loại liên kết này có chứa ...

Cách đăng nhập vào OneDrive từ phần mềm

Cách đăng nhập vào OneDrive từ phần mềm

OneDrive là một thành phần của Office 365, Dịch vụ trực tuyến của Microsoft. Trước khi bạn có thể lưu trữ, chia sẻ, hoặc đồng chỉnh sửa các tập tin trên OneDrive từ iPad, bạn phải đăng nhập vào OneDrive. Đọc tiếp để tìm hiểu cách đăng nhập từ Office cho iPad và đăng nhập từ một trình duyệt web. OneDrive ...

Lựa chọn của người biên tập

Cách sắp xếp các tệp phương tiện cho WordPress Blog của bạn - núm vú

Cách sắp xếp các tệp phương tiện cho WordPress Blog của bạn - núm vú

Nếu bạn đã chạy blog của bạn trong bất kỳ khoảng thời gian nào, bạn có thể dễ dàng quên những tệp bạn đã tải lên bằng trình tải lên WordPress. Thư viện Truyền thông WordPress giúp bạn dễ dàng và dễ dàng khám phá những tệp nào trong thư mục Uploads của bạn. Để tìm tệp hình ảnh, video hoặc âm thanh mà bạn đã tải lên bằng cách sử dụng <

Làm thế nào để tối ưu Blog WordPress của bạn cho Công cụ Tìm kiếm - núm vú

Làm thế nào để tối ưu Blog WordPress của bạn cho Công cụ Tìm kiếm - núm vú

Bạn muốn mọi người tìm thấy blog WordPress của bạn, nếu không bạn sẽ không dành thời gian để viết nó. WordPress được trang bị để tạo ra một môi trường thân thiện với các công cụ tìm kiếm, cho phép họ điều hướng dễ dàng thông qua các kho lưu trữ, các loại và các trang của bạn. WordPress cung cấp môi trường này với một cơ sở mã sạch, nội dung dễ dàng cập nhật thông qua ...

Làm thế nào để Thực hiện Từ khoá trong trang WordPress của bạn với Permalinks

Làm thế nào để Thực hiện Từ khoá trong trang WordPress của bạn với Permalinks

Cho thứ hạng cao hơn cho trang web WordPress của bạn, sử dụng các liên kết tùy chỉnh với từ khoá. Bằng cách sử dụng các liên kết tuỳ chỉnh, bạn tự động chèn từ khoá vào URL của các bài đăng và trang của bạn, cho phép các công cụ tìm kiếm bao gồm các bài đăng và trang đó trong cơ sở dữ liệu thông tin về những chủ đề đó. Nếu trang web của bạn được lưu trữ bởi nhà cung cấp có

Lựa chọn của người biên tập

Làm thế nào để gửi chú thích để chia sẻ chúng trong OneNote 2013 - núm vú

Làm thế nào để gửi chú thích để chia sẻ chúng trong OneNote 2013 - núm vú

Một trong những phương pháp đơn giản chia sẻ một ghi chú với OneNote 2013 bằng cách gửi nó dưới dạng tệp tin tới người nhận e-mail hoặc thậm chí với Microsoft Word hoặc blog của bạn. Để gửi lưu ý hiện tại dưới dạng tệp tin, hãy làm theo các bước sau: Mở ghi chú mà bạn muốn chia sẻ trong OneNote 2013 và chọn <...

Làm thế nào để Đồng bộ hóa Ghi chú trong OneNote 2013 - núm vú

Làm thế nào để Đồng bộ hóa Ghi chú trong OneNote 2013 - núm vú

OneNote 2013 khoảng cách bản thân từ khái niệm toàn bộ các tệp lưu thủ công trong lợi của đồng bộ hóa chúng. Bạn có thể đồng bộ tập tin tự động hoặc thủ công. Điều này cho phép bạn tự do khi quản lý các tệp của mình. Làm thế nào để đồng bộ tự động trong OneNote OneNote tự động lưu các ghi chú của bạn mỗi khi bạn thực hiện bất kỳ thay đổi ở tất cả để một máy tính xách tay, phần, ...

Cách Quản lý Máy tính xách tay OneNote 2013 với SkyDrive - núm vú

Cách Quản lý Máy tính xách tay OneNote 2013 với SkyDrive - núm vú

SkyDrive có thể truy cập qua đám mây, 't có một ứng dụng SkyDrive được cài đặt trên thiết bị. Điều này giúp bạn dễ dàng quản lý máy tính xách tay OneNote 2013 từ bất kỳ thiết bị nào có truy cập internet. Cách quản lý máy tính xách tay với SkyDrive trên web Bạn có thể truy cập dịch vụ từ bất cứ thiết bị nào bạn đang sử dụng miễn là nó hỗ trợ