2013-07-04 38 views
18

Giả sử tôi có mã java như thế này (chỉ là ví dụ):Cách bỏ qua dòng trong gỡ lỗi ý tưởng Intellij?

public void someMethod(){ 
    int a = 3; 
    int b = 2; // <-- stay debug here 
    a = b + 2; 
    System.out.prinln(a); 
} 

Có thể bỏ qua thực hiện dòng "int a = b + 2;" và đi bất tận đến "System.out.prinln (a);"?

P.S. Tôi sử dụng Intellij Idea 12.

+0

"' int a = b + 2; "" Điều này có thể biên dịch không? – johnchen902

Trả lời

22

Không thể với trình gỡ lỗi không thực thi các phần của mã. Tuy nhiên, có thể thực thi thêm mã và thay đổi giá trị trên các biến vì vậy nếu bạn cần loại trừ một hàng khỏi thực thi trong khi gỡ lỗi, bạn sẽ phải thay đổi mã của mình để chuẩn bị cho loại gỡ lỗi đó.

public void someMethod() { 
    int a = 3; 
    int b = 2; 
    boolean shouldRun = true; 
    if (shouldRun) { 
     a = b + 2; 
    } 
    System.out.prinln(a); 
} 

Sau đó, bạn sẽ đặt điểm ngắt thay đổi giá trị của shouldRun mà không dừng thực thi. Nó có thể được thực hiện như thế này.

enter image description here

Lưu ý rằng

  1. Đình chỉ không được kiểm tra
  2. Đăng đánh giá biểu hiện được sử dụng để thay đổi một biến khi điểm hòa vốn là hit
+1

Wow đó là một giải pháp đáng kinh ngạc.Thật là một mẹo hay để bỏ qua việc thực thi mã, cũng có nó trên mã sản xuất. –

+0

Bạn cũng có thể thêm phím nóng hoặc đường dẫn để gọi cửa sổ này không? Nó không phải là cleare nơi bạn có điều này –

+0

Nó di chuyển xung quanh. Trong 2016.2.5 tôi đang sử dụng ctrl + f8 và sau đó ctrl + shift + f8 hai lần để đến hộp thoại đó. –

3

Bạn không thể bỏ qua 'thực thi dòng' khi gỡ lỗi. Bạn có thể nhấn F8 để bước qua.

0

Không thể bỏ qua EXECUTION của các dòng trong IntelliJ và ngay cả trong Eclipse. Chỉ có điều bạn có thể làm là bạn có thể thực hiện bước (F8) - sẽ theo dõi từng dòng một mà không cần đi vào bên trong bất kỳ chức năng nào.

Một điều nữa là Step out (Shift + F8) - sẽ chuyển đến điểm gỡ lỗi tiếp theo trực tiếp bằng cách thực hiện ở giữa các dòng trong bước đơn đó.

+1

No. "Chương trình tiếp tục" (F9) sẽ tiếp tục cho đến điểm ngắt tiếp theo. Step Out sẽ chạy phương thức hiện tại và dừng trình gỡ rối khi phương thức tồn tại. –

3

Chỉ có thể bỏ qua các dòng nếu bạn sử dụng hotswappi ng hoặc đặt vào các công cụ nạp lại mã khác - thêm các thay đổi mã/mã mới khi chạy. Hotswapping là chức năng thay thế các thành phần mà không cần tắt hệ thống. Hotswapping cũng có thể đề cập đến khả năng thay đổi mã đang chạy của một chương trình mà không cần phải làm gián đoạn quá trình thực thi của nó.

Có các công cụ hotswapping khác nhau như: JRebel (https://zeroturnaround.com/software/jrebel/) hoặc HotSwapAgent (http://www.hotswapagent.org/)

Bạn tránh được việc phải xây dựng lại toàn bộ ứng dụng để tải lại thay đổi mã, đây là một khoản tiết kiệm thời gian rất lớn. Thay vì chạy quá trình xây dựng đầy đủ của bạn, chỉ cần sử dụng trình biên dịch được tích hợp vào IDE của bạn và công cụ/tác nhân hotSwap sẽ tải lại mã vào JVM.

Trong trường hợp này, nó sẽ không thực sự bỏ qua nhưng bạn chỉ có thể nhận xét/thay đổi dòng và tải lại. Công cụ này khá tuyệt vời !!!! Nó làm tăng tốc quá trình phát triển/gỡ lỗi

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