크롬 자바 펼쳐 디버거 중단 점은 아무것도하지 않나요?
Chrome 도구를 알아낼 수없는 것입니다.
크롬 버전 21.0.1180.60m가 있습니다.
내가 취한 단계 :
- ctrl-shift-i를 콘솔을 불러 왔습니다.
- 소스를 클릭 한 다음 디버그하려는 관련 자바 펼쳐 파일을 선택합니다.
- 왼쪽 줄 옆의 여백에 파란색 태그를 배치하여 중지 할 중단 점을 설정합니다.
- 내 웹 페이지 (PHP 언어 페이지)에서 자바 코드를 시작하는 버튼을 클릭했습니다.
- 코드는 멈추지 않고 계속 실행됩니다.
또한 Watch Expressions도 작동하지 않습니다. 내가보고 싶은 변수가 정의되어 있지 않다는 메시지가 계속 표시됩니다.
추가 테스트에서 중단 점이 실패한 원인이 내 코드라는 것을 발견했습니다. "$ ("# frmVerification "). submit (function () {"줄에서 실패한 것입니다. 해당 함수 () 내부의 중단 점으로 들어 가지 언어.
다음은 다음과 가변.
//function to check name and comment field
var test = "this is a test";
var test2 = "this is another test";
function validateLogin(){
//if(userEmail.attr("value") && userPass.attr("value"))
return true;
//else
//return false;
}
//onclick on different buttons, do different things.
function ajaxRequest(){
}
$(document).ready(function(){
//When form submitted
$("#frmVerification").submit(function(){
var username = $("#username");
var token = $("#token");
var action = $("#action");
var requester = $("#requester");
if(validateLogin()){
$.ajax({
type: "post",
url: "verification.php",
data: "username="+username.html()+"&token="+token.val()+"&action="+action.val()+"&requester="+requester.val(),
success: function(data) {
try{
var jsonObj = $.parseJSON(data); //convert data into json object, throws exception if data is not json compatible
if(jsonObj.length > 0){//if there is any error output all data
var htmUl = $('<ul></ul>');
$.each(jsonObj, function(){
htmUl.append('<li>' + this + '</li>');
});
$("#errOut").html(htmUl);
}else{
alert("Your account is now activated, thank you. If you have already logged in, press OK to go to the home page. If not, you must log in first.");
window.location.replace("home.php");
}
}
catch(e){//if error output error to errOut]
$("#errOut").html("PHP module returned non JSON object: <p>"+data+"</p>");
}
}
});
}
else alert("Please fill UserName & Password!");
return false;
});
});
중단 점이 왜 안타는지 잘 모르겠지만 코드를 입력하는 확실한 방법은 다음을 입력하는 것입니다.
debugger;
코드를 중지하고 크롬 개발자 도구 창을 연 상태에서 다시 실행합니다.
주의해야 할 한 가지 작은 사항은 한 후 정리하고 디버거 라인을 제거하는 것입니다. YUI 압축기를 통해 JavaScript 파일을 실행 한 적이있는 경우 debugger;
줄이 있으면 오류가 발생합니다.
늦게 대답했지만 같은 문제가 있었는데 대답이 달랐습니다.
제 경우에는 코드에 sourceURL 참조가 있습니다.
//@ sourceURL=/Scripts/test.js
이 자바 펼쳐 파일이 축소되어 브라우저에 의해로드 될 경우 일반적으로 Chrome Dev Tools에 축소되지 않은 버전이 존재합니다.
그러나 축소되지 않은 버전이 존재 하고이 줄이 존재하는 경우 Chrome Dev Tools는 "일반"경로 대신 해당 sourceURL 경로에 매핑됩니다.
예를 들어 웹 서버에서 로컬로 작업하는 경우 Chrome Dev Tools의 소스 탭에서 지정된 JS 파일의 경로는 http://localhost/Scripts/test.js
test.js가 하단에있는 경우
//@ sourceURL=/Scripts/test.js
그러면 중단 점은 파일 경로가의 /Scripts/test.js
정규화 된 URL이 아닌 경우에만 작동합니다.http://localhost/Scripts/test.js
Chrome 38에서는 위의 예를 그대로 유지하면서 소스 탭을 보면 모든 파일이 실행 http://localhost/
되고 test.js를 클릭하면 Chrome이로드됩니다.http://localhost/Scripts/test.js
이 파일에 원하는 모든 중단 점을 넣을 수 있고 Chrome은 중단 점에 도달하지 않습니다. test.js의 함수를 호출하기 JS에 중단 점을 넣은 다음 해당 함수에하기 전에 Chrome이 경로가 /Scripts/test.js
. 이 파일에 중단 점을 제안면 프로그램 흐름이 중지됩니다.
@ sourceURL
JS 파일에서 줄을 제거하면 모든 것이 즉시 작동합니다 (예 : 예상대로).
아마도이 버그 https://code.google.com/p/chromium/issues/detail?id=278361
이 Linux에서 Chrome 31.0.1650.57 (공식 빌드 235101)으로 재현됩니다.
문제를 해결하기 위해 브라우저를 다시 시작하고 있습니다.
어느 쪽이든 문제가 있습니다. 내가 사용하지 않는 한 작동하지 않는 중단 점 debugger;
. "복원 복원 및 다시로드"로 중단 점 문제를 해결했습니다. Chrome 개발자 도구, 설정, 재구성 복원 및 새로 고침에 있습니다.
"디버거"로 펼쳐보기를 확인하십시오. 그것의 제품은 크롬에 의해 블랙 박스되지 않습니다. 소스 탭으로 이동하여 블랙 박스를 확인하고 해제 할 수 있습니다.
편집 : 스크린 샷 추가.
나는 관리자 여러 번 만났고 처음에는 localhost에서 잘 작동하고 갑자기 중단 점이 작동하지 않고 127.0.0.1로 전환 한 다음 다시 작동합니다. 희망이 도움이됩니다.
귀하의 문제가 발생했습니다. 다른 사람들에게 도움이되기를 바라며 여기에 공유하고 있습니다. 나는 이전에 다른 상황에 없었던 프로젝트에서 오늘 다시 발생하는 상황에 직면하지 않았습니다.
대본 :
동일한 소스에서 설치된 두 개의 부트 가능한 모달과 한 세트의 자바 펼쳐 파일 (blueimp의 멋진 jquery 파일 업로드)을 사용하는 한 페이지가 있습니다.
BS Modal 1은 페이지로드시 (php를 통해) 항상 페이지에 표시됩니다. 새로운 관련 레코드가 추가되는 데 사용됩니다. (CakePHP .... SalesForcey 유형 물건을 생각하십시오)
BS Modal 2는 기존 관련 레코드를 편집하는 데 사용하고 HTML 콘텐츠는 ajax 호출에서 가져 오기와 jQuery를 통해 DOM에 추가됩니다.
표준 HTML
<script>
태그 를 통해 포함 된 두 모달을 모두 지원하는 자바 펼쳐 .
중단 점은 Modal 1 때 알림을 알아 챘습니다. 코드가 실제로 평가되고 실행되고 있음은 확실하지만 동적으로 추가 된 Modal 2에서 코드가 실행될 수 있고 작동하지 않습니다. 경고 상자가 나타나고 코드 유형의 항목이 실행되고 출력은 코드에 논리를 나타냅니다.
나는 시간이 촉박이 때문에 더 깊이 조사하지 그것을 공개하고 커뮤니티에 환원하고 싶었습니다.
추신 : 나는 항상 SO를 사용합니다.
URL에서 매핑을 설정할 때와 동일한 호스트를 사용하고 있는지 확인합니다. 예를 들어 http://127.0.0.1/my-app
작업 공간을 설정하고 매핑했을 때를 통해 페이지를 보면 중단 점이 작동하지 않습니다 http://localhost/my-app
. 여기까지 읽어 주셔서 감사합니다. 여기 에서 Chromium 문제에 대한 제 답변을 참조 하세요 .
크롬 창에서 자바 스크립트 콘솔 (또는 소스)을 열 었는지 확인하십시오. 그렇지 않으면 중단 점에 도달하지 않습니다. 오른쪽 상단 모서리에있는 옵션 버튼-> 도구-> 자바 스크립트 콘솔로 자바 스크립트 콘솔을 열 수 있습니다.
Chrome의 중단 점이 아무 것도 실행하지 않는 문제가있었습니다. 내 코드에서 '디버거'를 사용하려고 할 때 내 코드의 VM 버전에서만 코드를 단계별로 실행할 수있었습니다. 내 문제는 리소스를 잘못 매핑했다는 것입니다. 다시 매핑하면 문제가 해결되었습니다.
내 해결책은 응용 프로그램 탭에서 로컬 저장소, 세션 저장소 및 쿠키를 지우는 것이 었습니다. 그 후 Chrome은 소스에 정의 된 중단 점에서 스크립트 실행을 일시 중지합니다.
- Google 크롬의 응용 프로그램 탭을 클릭하십시오.
- 각 폴더 아래의 URL을 마우스 오른쪽 버튼으로 클릭> 지우기
따라서 Adam Rackis의 답변 외에도 중단 점 위의 자바 스크립트 파일에 오류가 있으면 플래그를 지정하거나 debugger;
.
예를 들면 다음과 같습니다.
if (nonExistentVar === "something") {
console.log("this won't happen as the above errors out");
}
debugger;
console.log("this won't print either")
크롬에서 경험 한 것처럼 페이지를로드 할 때 디버거를 실행하려면 브라우저 콘솔을 열어야합니다.
실행하려는 자바 스크립트 파일에 이것을 넣으십시오.
debugger
브라우저 콘솔을 열고 페이지를 다시로드하십시오.
디버거는 아래 예제 이미지처럼 실행됩니다.
어떻게 작동하는지 잘 모르겠지만 설정을 위해 F1을 누르고 오른쪽 하단에서 "기본값 복원 및 다시로드"를 누르면 저에게 효과적이었습니다.
꽤 늦게 답변했지만 위의 어느 것도 제 경우에 도움이되지 않았고 다른 점이있었습니다.
javascript 파일 type = "text / javascript"를 참조하는 동안 작업중인 레거시 응용 프로그램에서 누락되었습니다.
<script src="ab.js" ></script>
하나 미만이 작동하고 중단 점이 예상대로 부딪 쳤습니다.
<script src="ab.js" type="text/javascript"></script>
10K 라인 파일에서 동일한 문제가 발생했습니다. 중단 점은 무시되고
하드 코딩 된 _debugger 문은 작동했지만 전환 할 수 루프에 배치 될 때 짜증이 날 수 있습니다. 약간의 해킹이지만 작동하는 내 솔루션은 파일 상단에 다음을 추가하는 것입니다.
let myDebuggerFlag = false;
let myDebugger = function () {
if (myDebuggerFlag) {
debugger;
}
}
그런 다음 myDebugger (); 일반적으로 중단 점을 사용하는 인라인.
다음으로 간단히 myDebuggerFlag = true를 입력합니다. 콘솔 라인에서. (물론 먼저 myDebugger에서 나와야합니다.
참고 URL : https://stackoverflow.com/questions/11788081/chrome-javascript-debugger-breakpoints-dont-do-anything
'ProgramingTip' 카테고리의 다른 글
Go에서 파일에 추가 (0) | 2020.10.28 |
---|---|
자바 펼쳐는 해시 값으로 페이지를 다시로드합니다. (0) | 2020.10.28 |
ASP.NET MVC 자동 캐싱 옵션을 선택하는 방법은 무엇입니까? (0) | 2020.10.28 |
wkhtmltopdf의 테이블 행 내부에서 페이지 나누기를 방지하는 방법 (0) | 2020.10.28 |
db : test : clone, db : test : clone_structure, db : test : load 및 db : test : prepare의 차이점은 무엇입니까? (0) | 2020.10.27 |