2010-07-27 4 views
0

DIV, AJAX, 동적 HTML 및 서버 측 코드를 많이 사용하는 크고 복잡한 웹 응용 프로그램을 디버깅하려고합니다.IE7 자바 스크립트 문제를 추적하는 데 사용할 수있는 도구는 무엇입니까?

정상적인 작동에서는 문제가 없습니다. 그러나, 우리가 IFRAME에 webapp을 넣을 때, 특정 함수는 IE7에서 브라우저를 작동 불능으로 만드는 충돌을 일으킨다 (모든 CPU 사용).

무슨 일이 일어나는지 추적하는 데 도움이되는 도구는 무엇입니까? IE 프로세스를 디버거에로드하면 레지스터에 대한 모든 흥미로운 정보를 얻을 수 있지만 문제는 자바 스크립트에 있다고 생각합니다.

우리는 요소의 잘못된 친 설정을 난에 iframe 대응의 innerHTML을 덤프하는 테스트 IFRAME 페이지를 썼다

(뭔가 window. 대신 document.의 자신을 연결) 관련 앱이 이미 하나의 문제를 추적했다 textarea, 그래서 그것은 다양한 상태에서 비교할 수 있지만 그것은 단지 정적 속성을 보여줍니다, 나는 어떤 종류의 자바 스크립트 이벤트가 요소와 관련되어 있는지 알 수 없거나 핸들러가 차례로 실행되는지 판단 할 수 없습니다.

IE8, Firefox, Chrome 등은 동일한 동작을하지 않습니다.

이상적으로 나는 알려진 좋은 상태에서 DOM (또는 자바 스크립트 VM?) 스냅 샷을 만들 수있는 무엇인가를 원합니다. 그런 다음 "바로 전에"그래서 우리는 추가/제거/누락/다른 것을 알아낼 수 있습니다. . 밖에 뭐가있어?

업데이트 : 이제 IE 개발자 툴바를 사용하여 추적하려고합니다.

업데이트 2 : IE7 충돌이 AJAX 코드를 다음 발생 :

function Sys$UI$Control$get_element() { 
    /// <value domElement="true" locid="P:J#Sys.UI.Control.element"></value> 
    if (arguments.length !== 0) throw Error.parameterCount(); 
    return this._element; 
} 

return this._element; 라인은 내가 IE를 잃게되기 전에 발생하는 마지막 일이다.

답변

6
  1. IE 개발자 도구 모음. here (IEDevToolBarSetup.msi)을 다운로드하십시오.
  2. JavaScript 디버깅의 경우 this blog을 참조하십시오.
+0

대단한 것을 잊었습니다. 나는 고대의 Microsoft Script Debugger를 사용하고 있었으며 적어도 "죽음 이전에 마지막으로 좋은 함수 호출"을 발견했습니다 - Microsoft.Ajax.js의 어떤 것 ... – mwalker

+0

IE 7 이상에서는 기본적으로 내장되어 있습니다. 6 이하의 경우 툴바를 다운로드해야합니다. –

0

IE 개발자 툴바는 확실히 많은 도움이됩니다. Visual Studio의 디버거는 VS 및 IE7이 설치된 시스템을 얻을 수 있으면 매우 좋습니다.

+0

내 테스트 VM에는 Visual Studio Web Developer가 있지만 디버거가 실행되어 코드를 단계별로 실행할 수는 없습니다. 결국 특정 Microsoft 프로그램 디버거를 사용하여 특정 충돌 지점을 찾았습니다. – mwalker

1

디버깅을 시작하려는 위치의 javascript 파일에 'debugger'를 삽입하면 Visual Studio에서 자바 스크립트를 디버깅하고 추적, 호출 스택 등을 완료 할 수 있습니다.

+0

이 답변에는 어떤 종류의 예나 적어도 예제에 대한 링크가 있어야합니다. – hitautodestruct

2

어떤 사람이 인터넷 익스플로러 컬렉션이라고하는 번들을 만들었습니다. 여기에는 IE6에서 IE8까지 다양한 빌드의 6 가지 IE 브라우저가 포함됩니다. 모든 것들은 Firebug (정말로, 일종의 작품들)와 Internet Explorer Developer Toolbar를 포함합니다.

저는 IE7 문제를 디버깅하는 데 정말 도움이되었습니다.

this 링크를 참조하십시오.

0

DynaTrace는 IE7의 프로파일 링 도구입니다. 그러나 JS 스택을 포함하여 많은 정보를 제공하므로 디버깅에 매우 유용 할 수 있습니다.

0

IE 7 및 IE 8에는 디버깅 도구가 내장되어 있습니다. F12 키를 누르면 디버깅 할 준비가됩니다. firebug-firefox 및 chrome의 검사 요소 옵션이 유용합니다/

+1

IE8에만 내장되어 있으며 Chrome과 Firefox는 충돌을 표시하지 않습니다. – mwalker

관련 문제