[Eclipse] 이클립스 디버깅 모드에서 특정 지점까지만 실행하고 메서드를 강제 리턴하는 방법

2025. 2. 3. 17:00·🚀 from error to study/Normal

 

 

 

🔥 포스팅 계기

 

이클립스 디버깅 모드에서 특정 지점까지만 실행하고 메서드를 강제 리턴하는 방법을 알아보자

 

 

 

 

📍 로직 예시와 포스팅 이유

👉🏻 이런 로직이 있다고 치자

package com.puppy.test;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Test test = new Test();
		int cnt = 0;
		
		System.out.println("before cnt: " + cnt);
		System.out.println("여기 브레이크 포인트를 걸어 봐요");
		
		System.out.println("대충 이 아래부터는 update, insert 등의 로직이 있다고 칩시다");
		cnt = test.updateMyInfoCnt(cnt); // mainDao.updateMyInfoCnt(cnt); 의 느낌이겠죠?
		System.out.println("after cnt: " + cnt);
	}
	
	public int updateMyInfoCnt(int cnt) {
		cnt++;
		return cnt;
	}
}

 

 

 

 

 

👉🏻 이클립스에서 자주 쓰는 디버깅은 특정 위치에서 객체의 값을 확인하기 위해 주로 사용하는데 값 확인 후 디버깅을 멈출 때 보통 아래 2가지 방법을 사용함

      1️⃣ F8 클릭하여 로직을 모두 태운 후 종료

      2️⃣ 톰캣 종료하여 메소드 진행을 강제 종료

 

👉🏻 1️⃣의 경우, 불필요하게 UPDATE/INSERT문까지 실행해야 함

👉🏻 2️⃣의 경우, 톰캣을 재시작해야 하는 번거로움과 시간 낭비가 있음 

 

 

 

⚡️  톰캣 재시작 없이 현재 로직에서 디버깅 끝내고 강제 RETURN 시키는 법은 없을까?

 

 

 

📍 Breakpoint + Force Return 사용

👉🏻 기존 예시 로직은 아래와 같이 진행될 것

 

 

 

👉🏻 브레이크포인트를 걸면 아래와 같이 잡히는데

 

 

 

 

👉🏻 중요한 건 Variables 탭에 this가 잡히는 부분이 있어야 함!

🆘  Variables 탭에 this가 없어요

 

 

 

👉🏻 this가 보이는 상태에서 Ctrl + Alt + R(Force Return 단축키) 클릭 시 메소드를 빠져나오고

🆘  단축키가 먹히지 않아요

 

 

 

 

👉🏻 이후 직힌 콘솔에도 update 없이 그대로임을 확인할 수 있음

 

 

 

 

🆘 1️⃣ this가 Variables 창에 안 보일 때

보통 this는 인스턴스 메서드에서만 보이는데, 만약

  • 메서드가 static이면 this가 없음 → Force Return 불가능
  • 브레이크포인트를 너무 초기화되기 전(메서드 진입 전)에 걸었을 경우도 this가 안 보일 수 있음

🔹 해결 방법

  1. 브레이크포인트를 메서드 내부 코드(A 실행 후 B 실행 직전)에 설정
  2. 디버깅 멈춘 상태에서 Variables 창에 this가 있는지 확인
    • 그래도 안 보이면 Step Into (F5) 또는 Step Over (F6)로 한 줄씩 실행해 보기
  3. this가 보이면 우클릭 → "Force Return" 실행
// 이건 안 됩니다 (static 메소드 내부)
public class Test {

	public static void main(String[] args) {
		int cnt = 0;
		
		System.out.println("cnt: " + cnt);
		System.out.println("여기 브레이크 포인트를 걸어 봐요");
		System.out.println("대충 이 아래부터는 update, insert 등의 로직이 있다고 칩시다");
		cnt++;
		System.out.println("cnt: " + cnt);
	}
}


// 이렇게 변경해 주세요 (새로운 메소드 생성)
public class Test {

	public static void main(String[] args) {
		Test test = new Test();
		test.updateMyInfoCnt();
	}
	
	public void updateMyInfoCnt() {
		int cnt = 0;
		System.out.println("대충 여기부터는 update, insert 등의 로직이 있다고 칩시다");
	}
	
}

 

 


 

🆘 2️⃣ Ctrl + Alt + R (Force Return 단축키)가 안 될 때

이클립스 버전에 따라 기본적으로 Force Return 단축키가 활성화되지 않을 수도 있음

 

🔹 해결 방법

  1. 단축키 직접 설정하기
    • Window → Preferences → General → Keys
    • Force Return 검색 후 Ctrl + Alt + R으로 설정
    • 설정 후 Apply and Close
  2. 단축키 대신 수동으로 실행하기
    • 디버깅 멈춘 상태에서
    • Variables 창에서 메서드 컨텍스트(= this 객체) 우클릭 → "Force Return" 클릭

 

 

 

 

더보기

챗지피티와 나의 땀이 섞인 캡처본

 

 

 

저작자표시 비영리 변경금지 (새창열림)
'🚀 from error to study/Normal' 카테고리의 다른 글
  • [Gitlab] 깃랩에서 마지막 커밋 메시지를 바꾸고 싶을 때
  • [Eclipse] Cannot access defaults field of Properties 해결
  • [Eclipse] an exception has been caught while processing the refactoring delete resource 해결 방법
  • [Normal] 브라우저별 캐시 삭제 가이드
천재강쥐
천재강쥐
  • 천재강쥐
    디버거도 버거다
    천재강쥐
  • 전체
    오늘
    어제
    • Category (467)
      • 진짜 너무 궁금한데 이걸 나만 몰라...? (0)
      • 💾 Portfolio (2)
      • 🐤 CodingTest (28)
        • Java (20)
        • ᕕ(ꐦ°᷄д°᷅)ᕗ❌ (5)
      • 🚀 from error to study (142)
        • AI (1)
        • Cloud (2)
        • DB (12)
        • Front-End (16)
        • Github (14)
        • Java (39)
        • Mac (7)
        • Normal (29)
        • Server (22)
      • 📘 certificate (44)
        • 📘 리눅스마스터1급 (1)
        • 📘⭕️ 정보처리기사 (40)
        • 📘⭕️ SQLD (3)
      • 📗 self-study (234)
        • 📗 inflearn (35)
        • 📗 생활코딩 (8)
        • 📗 KH정보교육원 당산지원 (190)
      • 🎨 Scoop the others (0)
        • 📖 Peeking into other people.. (0)
        • 🇫🇷 (0)
        • 📘⭕️ 한국사능력검정시험 심화 (11)
        • 오블완 (4)
  • 인기 글

  • hELLO· Designed By정상우.v4.10.1
천재강쥐
[Eclipse] 이클립스 디버깅 모드에서 특정 지점까지만 실행하고 메서드를 강제 리턴하는 방법
상단으로

티스토리툴바