http 요청 객체에 액세스하는 모든 클래스를 찾아야하는 웹 응용 프로그램이 있습니다. 그 중 하나가 버그를 찾기가 어렵 기 때문입니다. 따라서 ServletRequest 구현 방법 중 일부에 중단 점을 넣고 싶습니다. 그러나이 구현은 소스가없는 Weblogic에서 제공합니다. 특정 메소드의 어디에서든 클래스에 중단 점을 넣을 수 있습니다. Eclipse IDE가 더 좋습니다.소스가 없어도 클래스에 중단 점을 넣는 방법은 무엇입니까?
답변
해당 클래스의 개요보기를 사용하여 메서드 중단 점을 설정할 수 있습니다. 그런 다음 디버거가 메서드의 첫 번째 줄에서 중단됩니다.
이 기능을 사용하려면 소스 코드가 필요합니다.
디버깅의 경우이 코드와 일치하는 읽을 수있는 코드 + 줄 번호가 필요합니다. 이러한 항목은 클래스 파일에 포함되어 있지 않습니다.
다행히도 이것은 사실이 아닙니다. Thorbjørn Ravn Andersen의 대답을보십시오! – vol
운에 따라 a decompiler으로이 작업을 수행 할 수 있습니다. 적절한 줄에 중단 점을 배치해야합니다 (아예 "중단 점"코드 포함하지 않음)
ServletResponse
래퍼를 만드는 더 좋은 방법입니다. 덧붙여 말하자면 어제 제가 약간 다른 목적으로 그런 것을 만들었습니다. 그래서 여기에 있습니다 :
public class DebugFilter implements Filter {
public void init(FilterConfig filterConfig) {}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
chain.doFilter(request,
new ResponseWrapper((HttpServletResponse) response));
}
public void destroy() {}
}
class ResponseWrapper extends HttpServletResponseWrapper {
public ResponseWrapper(HttpServletResponse response) {
super(response);
}
@Override
public PrintWriter getWriter() throws IOException {
return super.getWriter(); // breakpoint here
}
// Override whichever methods you like
}
래퍼 접근법의 문제점은 이미 애플리케이션에서 래퍼가 있지만 일부 프레임 워크가 어떻게 든 원래 요청에서 직접 작동한다는 것입니다. 이는 버그입니다. –
- 1. 이런 식으로 중단 점을 설정하는 방법은 무엇입니까?
- 2. windbg에서 중단 점을 설정하는 방법은 무엇입니까?
- 3. 값에 따른 중단 점을 설정하는 방법은 무엇입니까?
- 4. Guava의 Cache 클래스에 값을 넣는 방법은 무엇입니까?
- 5. ObservableCollection 클래스에 데이터를 넣는 방법은 무엇입니까?
- 6. 중단 점을 넣는 것과 DebugBreak()를 호출하는 것의 차이점
- 7. 소스 코드가없는 클래스에 중단 점을 추가 할 수 있습니까?
- 8. 플래시가 없어도 html에 플래시 컨텐츠를 넣는 방법
- 9. gdb가 중단 점을 누르지 않음
- 10. _CrtSetBreakAlloc가 중단 점을 발생시키지 않는 이유는 무엇입니까?
- 11. Eclipse CDT가 중단 점을 무시하는 이유는 무엇입니까?
- 12. VSX : 런타임에 중단 점을 프로그래밍 방식으로 해제
- 13. Classic ASP에서 중단 점을 설정하는 방법은 무엇입니까? (IIS7/VS2010)
- 14. 함수의 시작 부분에서 중단 점을 설정하는 방법은 무엇입니까?
- 15. Delphi JVCL 단위로 중단 점을 설정하는 방법은 무엇입니까?
- 16. windbg에서 kernel32.dll의 모든 함수에 중단 점을 설정하는 방법은 무엇입니까?
- 17. Caliburn.Micro가 Silverlight 5에서 중단 점을 설정할 수있는 방법은 무엇입니까
- 18. dbg에서 사용자 정의 PHP 함수에 중단 점을 설정하는 방법은 무엇입니까?
- 19. 라이브러리에서 중단 점을 맞추는 방법?
- 20. 디버거가 중단 점을 맞지 않는다
- 21. WinDbg에 중단 점을 설정하지 못했습니다.
- 22. XCode에서 중단 점을 삭제하는 방법
- 23. 내가 중단 점을 설정할 때
- 24. 중단 점을 사용하여 Windows 서비스를 디버깅하는 방법?
- 25. 이클립스에서 중단 점을 지정할 수 없습니다.
- 26. 소스가 일치하는 JRE/JDK를 얻는 방법은 무엇입니까?
- 27. Xcode에서 조건부 중단 점을 추가하는 방법
- 28. Xcode에서 조건부 중단 점을 설정하는 방법?
- 29. 내 gdb 디버거가 2 개의 중단 점을 설정하는 이유는 무엇입니까?
- 30. 코드가없는 특정 위치에 중단 점을 만들려면 어떻게해야합니까?
cool, 나도 몰랐다 :) +1 – Bozho
어떤 이유로 인해 메서드의 오른쪽 클릭 메뉴에 "Toggle Method Breakpoint"가 새 작업 영역에 포함되어 있지 않지만 다른 중단 점이 설정된 후에 표시됩니다. –