다음을 통해 공유


릴리스 정보

비트를 검사하는 돋보기가 있는 WinDbg 로고비트를 검사하는 돋보기가 있는 WinDbg 로고입니다.

이 문서에서는 WinDbg의 새로운 기능을 설명합니다. 이전 버전은 WinDbg 미리 보기로 출시되었습니다.

1.2511.21001.0

새로운 기능

  • 더 나은 덤프 파일 대상 지정을 위해 CAB 파일 및 폴더로 확장된 우선 순위 기반 처리를 사용하여 향상된 파일 선택
  • 향상된 로깅 및 상태 메시지를 사용하여 ELF, DWARF 및 Mach-O 기호 파일 다운로드 개선
  • DBGHELP_DIA_PATH 환경 변수는 이제 기호 처리 제어를 향상하기 위해 현재 로드된 모듈보다 우선합니다.
  • 기호 탐색 및 조회 성능 향상을 위한 멤버 이름 인덱싱 개선

버그 수정

  • 라이브 Linux 대상에 메모리 쓰기가 실패하는 해결된 문제
  • 라이브 디버깅 대상에 연결된 경우 DAC 및 SOS 확장 로드 및 기능이 수정되었습니다.
  • 연결된 프로세스 실행 파일이 실제 이름 대신 'imageXXXXXXXX'로 표시되는 문제를 해결했습니다.
  • 문제의 음수 캐시 구현으로 인해 중단된 NuGet.exe 다운로드 코드를 수정했습니다.
  • exdigdbsrv를 사용할 때 UI 지연이 해결됨
  • USB 3.1 호환성 검사 해결 방법에서 처리된 WMI 예외
  • wdbgexts.h SAL 주석에서 잘못된 경고(C6518)가 제거됨
  • Linux 플랫폼에서 char16_tchar32_t 타입에 대한 형식 정보 표시가 수정되었습니다.

일반 UI 개선 사항

  • 새로 추가된 간소화된 리본(Simplified Ribbon) 옵션으로 리본 메뉴의 세로 공간을 줄일 수 있습니다.
  • RDP(원격 데스크톱 프로토콜) 세션에서 실행할 때 그래픽 하드웨어 가속 사용
  • 디스어셈블리 창에서 새로 고침 성능 향상
  • 다양한 모니터 구성에서 도구 창의 상황별 메뉴에 대한 DPI 크기 조정을 수정했습니다.
  • 소개 페이지에서 버전 정보를 선택 가능하게 하여 쉽게 복사할 수 있도록 했습니다.
  • 사용되지 않는 IDNA(애플리케이션의 국제화된 도메인 이름) 기술에 대한 지원 제거
  • 확장 갤러리 및 기타 내부 작업에서 초기 애플리케이션 시작 항목을 제외하도록 디버거 로그 정리

TTD(시간 이동 디버깅)

  • 1.11.553 -> 1.11.567

1.2510.7001.0

사용자 인터페이스 및 환경 개선 사항

  • 리본에서 메모리 창 인스턴스를 열기

디버깅 및 성능 향상

  • 디버깅 안정성을 개선하기 위해 프로세스 계측 콜백의 도용 방지
  • 향상된 데이터 시각화를 위한 테이블 형식 기본 설정이 있는 향상된 TTD(시간 이동 디버깅) 변수 기록
  • 적절한 함수 캡처를 보장하여 생성기를 다시 사용할 때 변수 기록의 충돌 해결
  • 더 복잡한 디버깅 시나리오를 처리하기 위한 모호한 중단점에 대한 향상된 계산기
  • 저장소 애플리케이션 및 PLM 프로세스에 대한 빈 게시자 열 표시가 수정되었습니다.

TTD 및 재생 API 업데이트

  • 추적 시작 부분으로 이동하는 대신 인수 없이 호출할 때 한 줄 도움말 및 현재 위치를 제공하도록 명령이 업데이트 !tt
  • 외부 통합을 위한 실험적 Replay API SDK 가용성 추가
  • 향상된 프로그래밍 방식 액세스를 위한 향상된 변수 기록 데이터 모델 메서드
  • 다양한 TTD 재생 작업 최적화 및 콜백 지원 개선 사항이 수정되었습니다.

버그 수정 및 안정성

  • "오류: 작업이 성공적으로 완료되었습니다."가 잘못 표시된 오류 보고가 수정되었습니다.
  • fasttfgitview 명령의 호스트 URL 처리 문제 해결
  • 보다 명확한 피드백을 제공하기 위해 기호 해상도에 대한 오류 텍스트 개선
  • Linux에서 플랫 매핑된 .NET 어셈블리에 대한 PDB 로드와 관련된 문제 해결
  • 디버깅 구성 요소에서 초기화되지 않은 읽기 버그 해결
  • 짧은 파일 이름의 확장 갤러리 파일 검색 문제가 해결됨

1.2508.27001.0

새로운 기능

  • WinDbg에 그래픽 하드웨어 가속을 사용하지 않도록 설정하는 옵션이 추가되었습니다.
  • 에 새 .AlternateFunctions 속성이 추가되었습니다 <frame>.Attributes.SourceInformation.

버그 수정

  • 대화 상자를 연 후 디버깅 시작 페이지가 새로 고쳐지지 않는 문제를 해결했습니다.
  • UI 자동화에 액세스할 수 없는 디바이스에 연결하는 탭 메뉴 항목의 문제를 해결했습니다.
  • 명령 기록을 탐색할 때 커밋되지 않은 명령 입력이 손실되는 문제를 해결했습니다.
  • 마우스 휠 처리를 올바르게 부드러운 스크롤(부드러운 휠 및 트랙 패드가 있는 마우스)으로 수정했습니다.
  • 함수 프롤로그가 호출 __SEH_prolog4될 때 32비트 x86 디버깅에서 잘못된 재귀 스텝오버 동작이 수정되었습니다.
  • NuGet 기반 확장 갤러리에 대한 설정의 .AllowNugetExeUpdate 버그가 수정되었습니다.
  • 테이블 및 이름 인덱스 주위에 .debug_names DWARFv5 기호를 읽을 때 버그가 수정되었습니다.
  • 여러 단계 필터링된 호출을 사용하여 소스 줄에 대한 단계별 동작을 수정했습니다.
  • 잘못된 natvis 버전 문자열로 인한 충돌을 해결했습니다.
  • 원격 디버깅에 대한 CreateProcessW 환경 블록 전송이 수정되었습니다.
  • !percpu!allpercpu 명령이 Linux 커널에서 alloc_percpu를 통해 동적으로 할당된 CPU 포인터에 대해 수정되었습니다.
  • Linux 커널 디버그 세션의 CPU 번호 매기기 문제가 해결되었습니다.
  • PDB(비프로그램 데이터베이스) 기호 대상에 대한 누락된 디스어셈블리 창 함수 레이블이 수정되었습니다.
  • ELF 이진 파일에서 자리 표시자 재배치 처리가 수정되었습니다.
  • DWARF 기호의 처리에서 double free가 수정되었습니다 DW_OP_fbreg.
  • x64-on-ARM64 에뮬레이트된 프로세스에 대한 전체 메모리 덤프 수집을 방지하는 덤프 컬렉션 코드의 회귀가 수정되었습니다.

일반 UI 개선 사항

  • 다른 해상도의 모니터를 변경할 때 WinDbg가 창 위치를 복원하는 방법을 개선했습니다. WinDbg는 이제 스냅된 위치를 저장하고 복원합니다.
  • Shift 키를 누른 상태에서 마우스 휠을 사용하여 가로 스크롤을 구현했습니다.
  • 최신 대화 상자를 사용하도록 폴더 열기 선택기를 업데이트했습니다.

1.2506.12002.0

새로운 기능

이제 WinDbg는 콘솔 모드 디버거(cdb.exe/ntsd64.exe/kd.exe)와 함께 제공됩니다. 서로 이진 파일을 구분하고 도구의 기존 복사본을 방해하지 않도록 하기 위해 이진 파일에는 아키텍처 이름이 포함됩니다.

  • cdbARM64.exe / cdbX64.exe / cdbX86.exe
  • kdARM64.exe / kdX64.exe / kdX86.exe
  • ntsdARM64.exe / ntsdX64.exe / ntsdX86.exe

추가 기능:

  • 데이터 모델 도구 창 제목은 명령을 통해 $OpenDmoToolwindow 사용자 지정할 수 있으며 제목 표시줄 상황에 맞는 메뉴를 통해 변경할 수도 있습니다.
  • 기호 파일의 병렬 HTTP 다운로드를 사용하도록 설정하는 새로운 디버거 설정입니다. 이 옵션은 기본적으로 사용하도록 설정됩니다.

버그 수정

  • 최근 메뉴에서 성공적으로 열 수 있도록 명령줄(-z)을 통해 열린 덤프 파일에 대해 대상 경로를 저장하는 방법을 수정 했습니다 .
  • 스크립트 편집기 창에서 충돌이 해결되었습니다.
  • WinDbg가 원본 파일의 보다 일관된 보기를 제공하기 위해 원본 창에서 열린 원본 파일에서 일관되지 않은 줄 끝을 처리하는 방법을 수정했습니다.
  • 새 병렬 다운로드 기능을 사용할 때 HTTP 기호 서버에 대한 자격 증명이 갱신되지 않는 문제를 해결했습니다.
  • JavaScript 확장에서 데이터 모델 개체의 속성이 제대로 열거되지 않는 문제를 해결했습니다.
  • 끌기를 통해 순서를 다시 지정할 때 열 텍스트가 사라지는 문제를 해결했습니다.
  • 시작 시 명령줄 옵션을 통한 이벤트 필터링 설정이 디버그 대상에 적용되지 않는 문제를 해결했습니다.
  • 때때로 도구 창을 도킹 해제할 때 빈 콘텐츠가 나타나는 문제가 수정되었습니다.
  • ARM64 컴퓨터에서 X64 에뮬레이트된 프로세스의 미니덤프를 디버그할 수 없는 문제를 해결했습니다.
  • 디버거를 크래시시키던 애매한 중단점 문제가 수정되었습니다.
  • 라이브 Linux 프로세스를 디버깅할 때 프로세스 종료 시 GDBServer가 충돌하는 문제를 해결했습니다.
  • 더 나은 속성 열거 및 충돌 문제 해결을 포함하여 JavaScript 확장 디버깅(.scriptdebug)과 관련된 여러 문제를 해결했습니다.

일반 UI 개선 사항

  • 명령 제안 팝업을 커서에 맞춥니다. 이제 커서 앞에 있는 모든 항목 대신 제안된 완성만 표시됩니다.
  • 디버그 대상 열기 오류 대화 상자에 자세한 정보를 제공했습니다. 열린 덤프 오류의 경우 열지 못한 TSG 파일에 대한 하이퍼링크를 제공했습니다.
  • 도구 창 제목 표시줄에 도킹된 탭과 동일한 컨텍스트 메뉴가 지정되었습니다.
  • 로컬 변수, 워치, 모델 창을 시각적으로 개선했습니다.
  • TTD(시간 이동 디버깅)를 버전 1.11.532로 업데이트했습니다. 자세한 내용은 TTD 릴리스 정보를 참조하세요.

1.2502.25002.0

새로운 기능

명령 창 IntelliSense

명령 입력 프롬프트는 첫 번째 입력 문자 . 가 (점), (뱅) ! 또는 $ (달러 기호)일 때 제안된 완성을 자동으로 표시합니다.

명령 바로 가기 Ctrl+스페이스바를 사용하여 제안을 호출할 수도 있습니다.

스냅샷 디버깅

WinDbg는 라이브 프로세스를 로컬로 디버그할 때 프로세스의 스냅샷을 만들 수도 있습니다. 스냅샷과 라이브 프로세스 간에 전환하려면 확장 탭의 아이콘을 사용합니다.

마찬가지로 WinDbg는 프로토콜 문자열을 통해 일시 중단하지 않고 프로세스의 프로세스 스냅샷에 snapshot:pid=<process pid in hex> 연결할 수 있습니다 Connect to remote debugger.

새 데이터 모델 API

  • Debugger.Utility.Symbols.GetTypeInformation

    전달된 개체와 연결된 형식 정보를 반환합니다. 선택적 인수를 사용하면 포인터(또는 ref) 아래에 있는 형식을 원하는 경우 포인터의 자동 역참조(한 수준)를 허용합니다.

  • Debugger.Utility.Control.CreateStepFilter(<Type>, <Pattern>)

    모든 중단점 만들기 API 옆에 있는 네임스페이스에 있는 새 단계 필터를 만듭니다.

  • Debugger.State.StepFilters

    속성Id, Description, TypePatternIsEnabled.가 있는 단계 필터 목록을 반환합니다. 단계 필터 개체에는 .Remove() 메서드가 있습니다.

clrcomposition.dll 없이 CLR 디버깅 환경 개선

재배포 가능 구성 요소 dbgeng.dllclrcomposition.dll가 없어도 CLR(공용 언어 런타임) 프레임에 대한 스택 트레이스 지원을 향상시킵니다.

임의 개선 사항

  • Linux 커널 디버깅에 대한 지원이 향상되었습니다(특히 6.11+ 커널의 경우).
  • ZSTD 압축 KDUMP 페이지에 대한 지원이 추가되었습니다.

버그 수정

  • SOS(서버 운영 체제)를 버전 9.0.557512로 업데이트했습니다.
  • msdia140.dll로드할 때 해지된 서명을 확인하는 성능 회귀가 수정되었습니다.
  • XSTATE 컨텍스트를 읽을 때 충돌이 해결되었습니다.
  • 비활성화된 중단점 강조 표시는 활성화된 중단점과 구별하기 위해 디스어셈블리 창에서 수정되었습니다.
  • 부동 도구 창을 닫을 때 발생하는 충돌이 수정되었습니다.
  • 최근 추적을 연 후 타임라인 창의 현재 위치가 항상 채워지지 않는 문제를 해결했습니다.
  • 새 값을 입력한 후 항상 업데이트되지 않는 디스어셈블리메모리 창에서 문제가 해결되었습니다.
  • 어두운 테마에서 제목 표시줄 색 구성표를 수정했습니다.
  • 생성된 원래 식 대신 위치가 표시된 0x0 창에서 지연된 중단점의 프레젠테이션을 수정했습니다. 또한 바인딩되지 않음을 나타내는 고유 아이콘도 있습니다.
  • 표시되는 항목을 마우스 오른쪽 단추로 클릭하면 보기가 위로 스크롤되는 로컬조사 식 창의 문제가 해결되었습니다.
  • .와 관련된 natvis문제가 해결되었습니다. 자세한 내용은 원래 버그 보고서를 참조하세요.
  • kd 메시지가 포함된 디버거 스팸이 수정되었습니다. 자세한 내용은 원래 버그 보고서를 참조하세요.
  • 조건이 false일 때 조건부 중단점을 트리거하는 gc 문제를 해결했습니다.
  • 이제 TTD 추적을 디버그할 때 YMM 및 ZMM 레지스터를 볼 수 있도록 문제를 해결했습니다.

접근성 수정

  • 로컬, 감시, 중단점 창의 키보드 탐색 기능이 개선되었습니다.
  • 리본 및 로컬, 워치, 그리고 브레이크포인트 창의 시각적 가독성이 향상되었습니다.
  • 로컬, 조사식 및 중단점 창의 스크린 리더 유용성이 향상되었습니다.
  • 로컬, 조사, 중단점 창에서 항목을 편집할 때 가능하면 이전 키보드 포커스, 선택 및 스크롤을 유지했습니다.
  • Windows 텍스트 크기 조정에 대한 일반 지원이 향상되었습니다.

일반 UI 개선 사항

  • 명령 입력 텍스트 상자에서 명령 출력 창으로 포커스를 이동하는 명령을 표시 모드 토글(예: 명령 프롬프트)으로 추가했습니다. 바로 가기는 Ctrl+M입니다.
  • 중단점 창에 디스어셈블리로 이동 상황 메뉴 항목을 추가했습니다.
  • 디스어셈블리 창에 명령으로 실행, 명령 포인터 설정, 원본으로 이동, 중단점 토글중단점 토글 상태에 대한 상황에 맞는 메뉴가 추가되었습니다.

시간 이동 디버깅

1.2410.11001.0

호환성이 손상되는 변경

이제 dbghelp.dll이 msdia140.dll에 동적으로 링크됩니다. 이 변경 내용은 msdia140.dll포함하지 않고 dbghelp.dll 재배포하는 도구에만 영향을 주어야 합니다. dbghelp.dll 포함하는 NuGet 패키지에는 msdia140.dll포함됩니다.

버그 수정

  • 확장 갤러리 함수 별칭이 로드 트리거에 바인딩되지 않는 문제를 해결했습니다.
  • 기호 저장소가 ERROR_INTERNET_SECURITY_CHANNEL 오류를 수신할 때 더 이상 작동하지 않던 문제를 해결했습니다.
  • 영어가 아닌 키보드 레이아웃의 명령 창에 백슬래시를 입력할 수 없는 문제가 해결되었습니다.
  • 텍스트가 호스트된 열보다 길면 로컬, 조사식중단점 창의 편집 텍스트 상자가 커서로 스크롤되지 않는 문제를 해결했습니다.
  • CAB 또는 ZIP 덤프의 경우 *.*.dmp(이중 기간)에 대해 *.dmp(단일 기간)의 우선 순위를 지정합니다.

접근성 수정

  • 키보드를 통해 로컬조사식 창의 열 크기 조정이 수정되었습니다.
  • WinDbgX 전체에서 키보드 탐색이 향상되었습니다.

1.2409.17001.0

접근성 수정

화면 읽기 프로그램을 사용하여 WinDbg와 상호 작용할 때 발생하는 몇 가지 문제를 해결했습니다.

버그 수정

  • WinDbgX를 제거하면 WinDbg(클래식)가 열리지 않는 문제가 해결되었습니다.
  • WinDbgX가 여는 동안 나타난 후 크기가 조정되는 문제를 해결했습니다.

시간 이동 디버깅

1.2407.24003.0

새로운 기능

새 JavaScript 스크립팅 공급자

이제 V8을 기반으로 이전 버전과 호환되는 새로운 JavaScript 공급자를 출시하고 있습니다. 따라서 ARM64 호스트는 이제 JavaScript 확장을 사용할 수 있습니다. ARM64 UI도 이제 ARM64 엔진의 기본값으로 설정됩니다.

새 공급자는 기본적으로 모든 아키텍처에서 사용하도록 설정됩니다. x86 및 x64에서는 .veighton 명령과 .veightoff 명령을 통해 켜거나 끌 수 있습니다. 나중에 이러한 명령과 레거시 JavaScript 공급자를 제거할 계획입니다.

확장 갤러리 매니페스트가 있는 디버거 확장은 이제 WinDbg 리본 메뉴의 새 확장 탭에 아이콘을 추가할 수 있습니다. 이러한 아이콘을 선택하면 특정 데이터 모델 쿼리의 시각화가 트리거됩니다. 확장성은 확장 갤러리 매니페스트에 를 추가하여 수행됩니다. 뷰는 이름 및 아이콘의 결합을 데이터 모델 쿼리 및 뷰 종류에 바인딩합니다. 설명서는 확장 갤러리 매니페스트 설명서를 참조하세요.

이제 특정 예외 매개 변수 값에 따라 갤러리 확장을 조건부로 로드할 수 있습니다. 자세한 내용은 확장 갤러리 매니페스트 설명서를 참조하세요.

특정 기호를 다운로드하지 않는 구성 옵션

이제 지정된 이미지에 대한 기호 다운로드를 건너뛸 수 있습니다.

SymbolsDbgX.xml 구성 파일의 섹션에서 기호 목록을 추가할 수 있습니다.

<Namespace Name="DisabledSymbolsDownload">
  <Setting Name="MSEdge.dll" Type="VT_BSTR" Value=""></Setting>
</Namespace>

디버거에서 dx Debugger.Settings.Symbols.DisabledSymbolsDownload를 실행하여 다운로드되지 않는 현재 기호 목록을 볼 수 있습니다.

디버거에서 직접 목록을 변경할 수도 있습니다.

dx @$curprocess.Modules[1].DisableSymbolDownload()
dx @$curprocess.Modules[1].EnableSymbolDownload()

포함된 SourceLink를 기반으로 원본 다운로드와 관련된 디버깅 문제를 지원하기 위해 이제 이 명령을 !lmsourcesinfo module 사용하여 디버거에서 사용하는 콘텐츠를 SourceLink 표시할 수 있습니다.

일반 UI 개선 사항

모듈스택 창과 같은 창이 약간 개선되었습니다.

  • 머리글 열은 그리드 보기를 정렬하는 데 사용됩니다.
  • 더 많은 마우스 오른쪽 클릭 작업을 사용할 수 있습니다.
  • 스택 창에는 프레임이 적절한 경우 인라인으로 표시됩니다.

버그 수정

  • 4GB보다 큰 PDB가 HTTP를 통해 다운로드되지 않는 문제를 해결했습니다. Edge는 이러한 PDB의 예입니다.
  • 디버거 자격 증명 공급자의 캐싱 문제를 해결했습니다. (이제 사이트당 자격 증명을 캐시합니다.)
  • 확장 갤러리 로드 트리거를 평가하는 동안 버그가 수정되었습니다.
  • !address와 관련된 충돌이 발생할 수 있는 버그가 수정되었습니다.
  • 지금 작동되도록 수정 !heap -a -a 되었습니다.

TTD

버전 1.11.410에 대한 TTD 릴리스 정보를 참조하세요.

1.2402.24001.0

새로운 기능

라이브 Linux 디버깅

이제 Linux 프로세스를 라이브로 디버그할 수 있습니다. 자세한 내용은 다음 문서를 참조하세요.

WinDbg는 Linux에서 실행되지 않으므로 당분간 WinDbg 클라이언트에는 Windows가 필요합니다.

시간 이동 디버깅을 통해 실행의 하위 집합을 기록하십시오.

이제 TTD를 관심 있는 모듈에 집중하도록 기록할 모듈 목록을 지정할 수 있습니다. 이 기능은 기록 오버헤드를 줄일 수 있습니다. 이를 사용하려면 구성 및 레코드 대화 상자에서 실행의 레코드 하위 집합을 선택합니다. 그런 다음 기록할 모듈을 지정합니다. (자세한 내용은 알려진 문제를 참조하세요.)

더 세부적인 제어를 위해 새 In-Process 기록 API를 사용하여 프로그램을 정확하게 기록할 수 있습니다. 프로그램을 기록하는 방법을 알아보려면 샘플 코드설명서를 참조하세요.

압축 레지스터 창

새로운 레지스터 창은 r 명령의 출력과 비슷합니다. 새 레지스터 창에서 편집은 아직 지원되지 않습니다.

메모리 명령에 e(값 입력)에 대한 새 매개 변수

e 메모리에 값 입력 명령은 이제 (메모리 표시) 명령과 같은 d 실제 주소를 지원합니다. 이러한 옵션은 커널 모드에서만 지원됩니다.

옵션 설명
/p 디스플레이에 실제 메모리 주소를 사용합니다. 범위로 지정된 범위는 가상 메모리가 아닌 실제 메모리에서 가져옵니다.
/p[c] 캐시된 메모리가 읽혀지는 것을 제외하고 는 동일합니다 /p. c 주변에 대괄호를 포함해야 합니다.
/p[uc] 캐시되지 않은 메모리가 읽혀지는 것을 제외하고는 동일합니다 /p. uc 주변에 대괄호를 포함해야 합니다.
/p[wc] 쓰기 결합 메모리를 읽는다는 점만 다르고 나머지는 /p와 동일합니다. wc 주변에 대괄호를 포함해야 합니다.

자세한 내용은 e, ea, eb, ed, eD, ef, ep, eq, eu, ew, eza (값 입력)를 참조하세요.

버그 수정

  • Linux 디버깅에서 Rust 이름 디망글링에 대한 지원이 추가되었습니다.
  • CLR 디버깅을 개선했습니다.
    • CLR 프레임에 대해 혼합 모드 스택 워킹을 강제 수행하는 기능이 추가되었습니다.
      • ForceMixedModeStackWalker 설정이 config.xml 또는 DbgX.xml에 추가되었습니다.
      • 일회성 조사 수행을 위한 명령어 !forceclrmixedmodeunwind가 추가되었거나, 구성 설정을 변경할 수 없는 경우에 사용하세요.
  • Linux에서 CLR 디버깅을 전반적으로 개선했습니다.
  • CPU 변수 및 CPU별 변수와 관련된 LinuxKernel.js 몇 가지 문제를 해결했습니다.
    • !runq LinuxKernel.js CPU별 커널 스케줄러 실행 큐를 덤프할 수 있도록 명령을 추가했습니다(Linux 크래시 유틸리티의 runq 명령과 비슷한 형태임).
    • LinuxKernel.js에서 커널 변경에 따라 다양한 명령이 수정되었습니다. 최신 커널에서 타이머 트리는 원시 RB 노드 대신 캐시된 RB 노드를 사용합니다. 최근 커널 all_bdevs에서는 목록이 없어졌기 때문에 블록 디바이스는 슈퍼블록에서 탐색됩니다 blockdev_superblock.
  • 최신 버전의 Visual Studio처럼 작동하도록 다양한 natvis 수정을 수행했습니다.
  • 기본 설정 sourcelink 및 레거시 sourceinfo.
    • !lmsourcesinfo <module> PDB의 스트림 표시를 위한 sourcelink 명령어가 추가되었습니다(sourcelink 디버깅 문제 해결을 지원하기 위해).

알려진 문제

TTD를 사용하여 기록할 모듈 목록을 지정하는 경우 이 릴리스에서는 둘 이상의 모듈을 지정하는 것이 작동하지 않습니다.

1.2308.2002.0

많은 버그 수정 및 작은 개선이 이루어졌습니다.

1.2306.12001.0

많은 버그 수정 및 작은 개선이 이루어졌습니다.

1.2303.30001.0

참고

디버거의 이름이 WinDbg 미리 보기 에서 WinDbg로 변경되었습니다.

Windows용 디버깅 도구를 사용하여 릴리스된 레거시 디버거를 이제 WinDbg(클래식)라고 합니다.

ARM64의 시간 이동 디버깅

WinDbg는 ARM64에서 기본적으로 실행되며 네이티브 ARM64 프로세스의 TTD도 사용하도록 설정했습니다. 이제 네이티브 ARM64 프로세스(및 x86 및 ARM32 프로세스)를 기록하고 x64 컴퓨터에서도 쉽게 디버그할 수 있습니다. ARM64 디바이스에서 x64 또는 x64 지원(ARM64EC) 프로세스에 대한 지원은 아직 제공되지 않습니다.

일반적인 SIMD 지침을 사용하는 프로세스의 기록 오버헤드가 크게 감소하여 전반적인 TTD 성능도 향상되었습니다. MMX부터 SSE 4.2, AVX 및 AVX2까지 총 65개의 새로운 명령이 최적화되었습니다.

불명확한 중단점 해결

모호한 중단점은 중단점 식이 여러 위치로 해결되는 특정 시나리오에서 디버거가 중단점을 설정할 수 있도록 합니다. 자세한 내용은 모호한 중단점 해결을 참조 하세요.

1.2107.13001.0

이제 WinDbg 미리 보기 검색에는 정규식(regex라고 함)을 사용하여 검색하는 옵션이 포함됩니다. 검색하려는 창에서 regex를 사용하도록 설정하려면 Ctrl+F를 선택합니다. 그런 다음 검색 상자 옆에 레이블이 지정된 .* 단추를 전환합니다.

제한된 모드

제한된 모드는 WinDbg Preview에서 원격 디버깅 세션을 시작하고 파일만 덤프할 수 있는 디버깅 세션의 유형을 제한할 수 있는 선택적 설정입니다. 자세한 내용은 WinDbg: 제한된 모드를 참조하세요.

그림자 변수 지원

이전 버전에서는 WinDbg가 다른 범위의 변수와 이름을 공유하는 변수를 평가할 때 (??) 또는 표시하려고 할 때 (dx) "모호한 기호" 오류를 발생시킵니다. 이제 WinDbg는 변수 이름에 추가하여 동일한 이름을 공유하는 변수를 구분합니다 @n . 예를 들어 foo@0 및 foo가 있습니다.@1

이 변경 내용은 지역 창에도 반영 됩니다 . 이전에는 범위에서 가장 가까운 변수만 나타났습니다.

1.2104.13002.0

WinDbg 미리 보기의 편리한 생산성 기능은 명령 창에서 패턴을 검색하는 기능입니다. 패턴을 검색하려면 텍스트를 선택하고 해당 텍스트의 다른 모든 인스턴스가 강조 표시됩니다. 이 강조 표시는 메모리 패턴을 볼 때 유용합니다. 이제 숫자가 16진수, 10진수 또는 과학적 표기법으로 형식이 지정되는 방식에 관계없이 다른 반지름의 해당 숫자도 강조 표시합니다. 번호 매기기 체계에 대한 자세한 내용은 n (숫자 기준 설정)을 참조하세요.

예시:

선택하면 0x000001e2fb3f6160형식에 관계없이 다른 모든 인스턴스가 강조 표시됩니다.

여러 숫자 형식이 강조 표시된 WinDbg **명령** 창의 스크린샷

이 기능은 반 임시 강조 표시에서도 작동합니다. Ctrl 키를 선택하고 숫자를 두 번 클릭하여 모든 인스턴스를 강조 표시합니다. 이러한 방식으로 명령 기록 전체에서 여러 중요한 숫자를 추적할 수 있습니다. 강조 표시를 지우려면 Ctrl 키를 선택하고 숫자를 다시 두 번 클릭합니다. 마지막으로 이 기능은 Ctrl+F를 선택하여 숫자를 검색할 때도 작동합니다.

소스 코드 확장 액세스

원본 경로 명령 .srcpath, .lsrcpath(원본 경로 설정) 가 새 태그 DebugInfoD를 포함하도록 업데이트되었습니다. 자세한 내용은 소스 코드 확장 액세스를 참조하세요.

데이터 모델에서 WOW 프로세스의 호스트 및 게스트 상태

64비트 컨텍스트에서 32비트 WOW 프로세스를 디버그하는 경우 이제 데이터 모델 내에서 호스트 및 게스트 상태 모두에 액세스할 수 있습니다.

32비트 게스트 상태 예제:

  • dx @$curprocess.Environment
  • dx @$curthread.Environment
  • dx @$curthread.Stack

64비트 호스트 상태 예제:

  • dx @$curprocess.NativeEnvironment
  • dx @$curthread.NativeEnvironment
  • dx @$curthread.NativeStack

JavaScript 디버깅 개선 사항

이제 UI에 로드된 JavaScript는 .scriptdebug 콘솔 내에서 직접 디버깅을 위해 명령을 사용합니다. 자세한 내용은 JavaScript 디버거 스크립팅: JavaScript 디버깅을 참조하세요.

접근성 개선

WinDbg Preview를 사용하여 장애가 있는 엔지니어를 위한 디버거를 빌드하기 위해 최선을 다하고 있습니다. 다음과 같은 접근성을 개선했습니다.

  • 키보드를 통해 명령 창 링크를 클릭할 수 있게 만들었습니다(Shift+Enter 선택).
  • 주 메뉴의 키보드 탐색이 향상되었습니다.
  • 리본 메뉴의 키보드 탐색 기능이 향상되었습니다.
  • UI 요소의 대비가 증가했습니다.

시간 이동 디버깅에 대한 새 덮어쓰기 데이터 액세스 유형

이제 시간 이동 디버깅은 데이터 액세스 형식을 Overwrite 제공합니다. 이제와 같은 dx @$cursession.TTD.Memory() 메모리 쿼리에는 쓰기의 이전 값을 보여 주는 다른 열이 있습니다.

기타 수정 사항, 개선 사항 및 업데이트

  • 커널 디버깅 호스트와 대상이 모두 USB 3.1 컨트롤러인 경우 USB 3.1 하드웨어 문제에 대한 해결 방법을 자동으로 검색하고 적용하는 기능이 추가되었습니다.
  • 새 UI 바로 가기가 추가되었습니다. DML 링크를 통해 Ctrl+Shift+를 선택하면 클립보드에 복사됩니다.

1.0.2007.01003

타임라인 북마크

위치를 수동으로 복사하여 메모장에 붙여넣는 대신 WinDbg에서 중요한 시간 이동 위치를 책갈피로 지정합니다. 책갈피를 사용하면 다른 이벤트와 비교하여 추적의 다양한 위치를 한눈에 보고 주석을 달기 더 쉽습니다.

책갈피에 대한 설명이 포함된 이름을 제공할 수 있습니다.

표시 인사말 앱의 첫 번째 API 호출에 대한 예제 이름이 있는 새 책갈피 대화 상자의 스크린샷

타임라인보기>에서 사용할 수 있는 타임라인 창을 통해 책갈피에 액세스합니다. 책갈피 위로 마우스를 가져가면 책갈피 이름이 나타납니다.

세 개의 책갈피와 책갈피 이름을 표시하는 도구 설명이 있는 WinDbg 타임라인의 스크린샷

책갈피를 선택하고 길게 누르거나 마우스 오른쪽 단추로 클릭하여 해당 위치로 이동하거나 책갈피의 이름을 바꾸거나 삭제할 수 있습니다.

위치로 이동, 편집 및 제거할 수 있는 옵션이 있는 책갈피 오른쪽 단추 클릭 팝업 메뉴의 스크린샷

모듈 창

새 창에는 보기 리본을 통해 사용할 수 있는 모듈 및 관련 정보가 표시됩니다. 모듈 창에는 다음이 표시됩니다.

  • 경로 위치를 포함하여 모듈의 이름입니다.
  • 로드된 모듈의 크기(바이트)입니다.
  • 모듈이 로드되는 기본 주소입니다.
  • 파일 버전입니다.

나열된 5개의 모듈을 표시하는 WinDbg 모듈 창의 스크린샷

라이브 디버깅에서 사용할 수 있는 스레드 이름/설명

이제 라이브 사용자 모드 디버깅을 수행할 때 설정된 SetThreadDescription 스레드 이름을 사용할 수 있습니다. 스레드 이름은 ~ 명령 또는 디버거 데이터 모델을 사용하여 확인할 수 있습니다.

0:000> ~
   0  Id: 53a0.5ffc Suspend: 1 Teb: 000000b1`db1ed000 Unfrozen "Hello world!"
   7  Id: 53a0.9114 Suspend: 1 Teb: 000000b1`db1ef000 Unfrozen
   8  Id: 53a0.2cc4 Suspend: 1 Teb: 000000b1`db1f1000 Unfrozen
   9  Id: 53a0.5c40 Suspend: 1 Teb: 000000b1`db1f3000 Unfrozen

0:000> dx @$curthread
@$curthread                 : ConsoleTestApp!ILT+25(mainCRTStartup) (00007ff7`fac7101e)  [Switch To]
    Id               : 0x5ffc
    Name             : Hello world!
    Stack
    Registers
    Environment

이식 가능한 PDB 지원

이식 가능한 PDB 지원이 추가되었습니다. PDB 형식은 CLI 언어 컴파일러가 생성하고 디버거 및 기타 도구에서 사용하는 디버깅 정보의 인코딩을 설명합니다. 자세한 내용은 이식 가능한 PDB 기호를 참조하세요.

기타 변경 내용 및 버그 수정

  • WinDbg에 대한 AMD64 및 Linux 커널 덤프 디버깅을 지원합니다.
  • 시간 이동 기록 개선 사항 및 기타 수정 사항이 적용되었습니다.

1.0.1912.11001

  • TTD 타임라인: 새 창에는 예외, 중단점, 함수 호출 및 메모리 액세스와 같은 추적의 중요한 이벤트의 시각적 표현이 표시됩니다. 타임라인은 자동으로 열리고 예외(있는 경우) 및 중단점을 표시합니다. 자세한 내용은 WinDbg 미리 보기: 타임라인을 참조하세요.
  • 기본 창 크롬으로 전환: 사용한 사용자 지정 창 크롬으로 인해 일부 크기 조정 및 크기 조정 문제가 발생했으므로 지금은 제거했습니다.
  • 파일 메뉴 개선된 키보드 탐색: 파일 메뉴는 키보드로만 쉽게 탐색할 수 있습니다.

기타 변경 내용 및 버그 수정

  • 대상이 없을 때 "지정되지 않은 오류"가 표시되지 않도록 대상이 실행 중일 때 StackLocals 창을 사용하지 않도록 설정합니다.
  • 실행 중인 서비스를 쉽게 찾을 수 있도록 연결 대화 상자에 서비스 열이 추가되었습니다.
  • 인수를 사용하여 애플리케이션을 열 때 아키텍처 검색이 작동하지 않는 버그가 수정되었습니다.
  • 사적 기호가 로드될 때 디스어셈블리 창의 디스어셈블리가 개선되었습니다.
  • 이제 jsprovider.dll 자동으로 로드되므로 스크립팅 리본에서 JSProvider 로드 단추가 제거되었습니다.

1.0.1908.30002

  • TTD 호출 개체의 향상된 기능: 이제 호출 쿼리 에는 매개 변수 이름, 형식 및 값이 포함됩니다. 함수 호출에 대한 추적을 쿼리할 때 완전히 형식화된 매개 변수와 해당 값을 가져올 수 있습니다. 이 기능을 사용하면 매개 변수별로 결과를 쉽게 필터링할 수 있습니다.
  • Open Enclave 지원: WinDbg 미리 보기는 이제 Open Enclave 애플리케이션을 디버그할 수 있습니다. 자세한 내용은 Open Enclave 디버깅을 참조하세요).
  • ELF 코어 덤프: Open Enclave 지원의 일환으로 WinDbg는 ENCLAVE 및 Linux 애플리케이션 모두에서 ELF 코어 덤프 및 이진 파일과 DWARF 기호(DWARF 5는 현재 지원되지 않음)를 열 수 있습니다. 비 Windows 애플리케이션에서 코어 덤프를 열면 기본 창과 명령이 모두 제대로 작동하지만 대부분의 확장 및 Windows 관련 명령은 작동하지 않습니다. ELF 및 DWARF 파일은 SSQP 키 규칙에 정의된 주요 규칙에 따라 기호 서버에서 다운로드됩니다. Enclave는 유일하게 지원되는 시나리오이지만 다른 Linux 코어 덤프를 여는 데 대한 피드백을 환영합니다.
  • TTD 파일 형식 변경: TTD 추적의 파일 형식에 대한 주요 업데이트는 호환성을 손상합니다. 이전 버전의 WinDbg Preview는 이 버전 및 이후 버전의 WinDbg 미리 보기로 기록된 추적을 열 수 없습니다. 이 버전과 이후 버전은 새 추적과 이전 추적을 모두 열 수 있습니다.

기타 변경 사항

  • 이제 TTD는 인덱싱에 64비트 엔진을 사용하고 재생에 적절한 디버거 엔진 비트를 사용합니다. 재생 시 인덱싱 및 SOS 문제가 최소화될 때 발생할 수 있는 메모리 문제입니다.
  • 이제 매개 변수 없이 실행 dx 하면 더 쉽게 검색할 수 있는 루트 네임스페이스가 표시됩니다.
  • 이제 설정 메뉴에 기본 기호 및 원본 캐시 위치를 수정하는 옵션이 있습니다.
  • AVX-512 기록(AVX-512 기록으로 인해 정상보다 큰 속도가 느려지게 됨)에 대한 지원이 향상되었습니다.
  • 오프라인 라이선스 를 사용할 수 있습니다.

1.0.1905.12001

  • SymSetDiaSession 오류 완화 개선: DbgHelp를 프로세스에 주입하는 애플리케이션으로 인한 오류를 완화하는 수정은 일부 시나리오에서 작동하지 않았습니다. 이를 개선했으며 이 오류에 대한 피드백을 계속 모니터링합니다.

  • 악센트 색상 사용자 정의: 여러 WinDbg 인스턴스를 여는 경우가 자주 있습니다. 그들 사이를 앞뒤로 이동하는 것은 혼란스러울 수 있으며 어느 것이 "올바른"지 알아내는 데 시간이 걸릴 수 있습니다. 세션을 시각적으로 구분하고 세션을 보다 쉽게 교환할 수 있도록 파란색 강조 색을 변경하는 기능을 추가했습니다.

    보기 리본을 선택하고 마지막 섹션에서 강조 색 옵션을 선택합니다. 최근 대상에서 열린 이후 세션에서는 강조 색상이 대상 작업 공간의 일부로 유지됩니다.

  • 원본 토큰화 개선 사항: 원본 창에는 이제 Rust 원본 파일 및 C++ SEH __try/__except/__finally/__leave 토큰화에 대한 기본 지원이 제공됩니다.

  • 코루틴 개선 사항: 코루틴 지역 변수 및 특정 최적화된 변수에 대한 지원이 향상되었습니다.

  • 기본 기호 및 원본 캐시 설정: 디버깅설정 아래의 설정 메뉴에 옵션을 추가하여 기호의 캐시 위치를 변경했습니다. 이 설정을 비워 두면 원본 로드가 실패하는 알려진 문제가 있습니다. 향후 릴리스에서 이 문제가 발생하지 않도록 유효성 검사를 추가할 계획입니다.

  • -pv 수정: 어떤 상황에서는 비침습적 연결이 작동하지 않을 -pv 수 있는 버그를 수정했습니다.

1.0.1904.18001

  • SymSetDiaSession 오류 수정: 일부 상황에서 WinDbg 미리 보기가 열리지 않는 오류에 대한 보고가 있었습니다. 일부 외부 애플리케이션은 DbgHelp 버전을 로드하기 전에 프로세스에 삽입하려고 시도합니다. 그 중 일부는 누락된 기능이 있는 DbgHelp 버전을 사용하므로 이러한 기능을 사용하려고 할 때 이 오류가 발생합니다. 이 문제에 대한 수정 사항을 추가하고 추적하여 여전히 발생하는 시나리오가 있는지 확인할 계획입니다.
  • 글꼴 컨트롤: 글꼴 및 글꼴 크기를 제어하기 위한 설정을 추가했습니다. 두 가지 설정이 있습니다. 하나는 텍스트 창( 디스어셈블리, 원본명령과 같은 모노스페이스 창) 및 도구 창( 예: 로컬스택)을 위한 것입니다. 이러한 옵션은 일부 영역에 영향을 주지 않습니다. 향후 업데이트할 계획입니다.
  • 향상된 기능 강조 표시: 이제 명령 창에서 텍스트를 영구적으로 강조 표시하면 원본노트 창의 텍스트도 강조 표시됩니다.
  • 원본 로드 개선 사항: 원본 파일 로드의 작동 방식을 변경했습니다. 이전에는 원본 파일을 열 때 더 많은 명령을 실행하는 것과 같은 엔진 작업이 불가능했거나 예측할 수 없었습니다. 더 나은 병렬 처리와 원본 열기 작업의 보다 안정적인 취소를 사용하도록 로딩이 발생하는 위치를 변경했습니다.

기타 변경 내용 및 버그 수정

  • 원본 창의 상황에 맞는 메뉴에 디스어셈블리로 이동이 추가되었습니다.
  • 디스어셈블리 창에 현재 명령 팔로우 확인란이 추가되었습니다.
  • 명령 창이 많은 양의 텍스트를 출력할 때 느리게 수행되는 버그가 수정되었습니다.
  • Page Up 및 Page Down 키가 Visual Studio와 비슷하게 작동하도록 변경되었습니다.
  • 원본 창에서 ASM 파일을 열 때 이제 기본 주석, 문자열 및 지시문이 강조 표시되도록 변경했습니다.

1.0.1812.12001

이 버전에는 다음 업데이트가 포함됩니다.

  • 디버거 데이터 모델 C++ 헤더: C++를 통해 디버거 데이터 모델을 확장하기 위한 Windows SDK의 일부로 포함된 새 C++ 헤더 DbgModel.h가 있습니다. 자세한 내용은 디버거 데이터 모델 C++ 개요를 참조하세요. 이번 릴리스에는 dx 명령, JavaScript, 새 DbgModel.h 헤더를 통해 액세스할 수 있는 디버거 데이터 모델에 API 스타일의 새로운 기능을 추가하는 확장이 포함되어 있습니다. 이 확장은 Debugger.Utility.Code 네임스페이스와 Debugger.Utility.FileSystem 네임스페이스를 통해 로컬 파일 시스템을 통해 어셈블리 및 코드 실행에 대한 지식을 포함하도록 데이터 모델을 확장 합니다.
  • 가상 형식 확장: 이 새로운 API 확장을 통해 GitHub 리포지토리에 새로운 샘플이 제공됩니다. 이 JavaScript 확장은 기본 C 헤더 파일을 읽고 헤더에 정의된 구조체 및 공용 구조체에 대한 가상 형식 정보를 정의합니다. dx 그런 다음 명령을 통해 이러한 형식에 대한 형식 정보가 포함된 PDB가 있는 것처럼 메모리를 구조화할 수 있습니다.

기타 변경 내용 및 버그 수정

  • 이제 WinDbg 미리 보기는 단계를 진행할 때 원본 창 또는 디스어셈블리 창을 포그라운드로 지능적으로 가져옵니다.
  • WinDbg 미리 보기 창 제목은 커널 디버깅 시 시작 시 더 중요한 정보를 포함하도록 다시 정렬되었습니다.
  • 명령 창에서 번갈아 가며 배경 대비가 약간 더 눈에 띄어야 합니다.

1.0.1810.2001

이 버전에는 다음 업데이트가 포함됩니다.

  • 파일 메뉴 또는 리본에서 액세스할 수 있는 새 설정 대화 상자가 추가되었습니다.
  • 이벤트 및 예외 설정 대화 상자가 추가되었습니다. 이 메뉴는 디버거가 이벤트 및 예외를 처리하는 방법을 변경합니다. 명령 또는 WinDbg의 이벤트 필터 대화 상자와 동일합니다 sx . 리본에서 설정을 선택합니다. 그런 다음 왼쪽 메뉴에서 이벤트 및 예외를 선택하여 이벤트 및 예외를 관리합니다.
  • 성능이 향상되어 TTD 인덱서가 향상되었습니다. 이렇게 하면 TTD 추적 파일을 인덱싱하는 성능이 향상되어 인덱싱 프로세스가 더 빨라지고(2회에서 10회 사이) 인덱스 파일이 더 작게 만들어집니다(약 50% 작음). 성능 향상은 4GB 이상의 추적 또는 CPU 코어가 많은 컴퓨터(8 이상)를 사용하는 경우에 가장 두드러집니다. 새 인덱서는 큰 추적(50GB 이상)을 디버그하는 것이 더 쉬워집니다.
  • 아키텍처를 지정하기 위한 새 debugArch 시작 플래그가 추가되었습니다. WinDbg Preview는 관리 코드 디버깅을 더 잘 지원하기 위해 대상에 대한 올바른 비트로 디버거 엔진을 시작하려고 시도합니다. 올바른 비트 설정을 확인할 수 없는 경우나 당신이 결정된 것을 사용자 정의하고 싶을 때 사용할 수 있는 상황이 있습니다. x86|amd64를 사용하여 -debugArch 디버거 엔진의 아키텍처를 제어합니다.

기타 변경 내용 및 버그 수정

  • 부동 창이 열려 있는 전체 화면 디버거에 검은색 막대가 표시되는 버그가 수정되었습니다.
  • 기호 옵션이 의도치 않게 지워지는 버그가 수정되었습니다.
  • 최근 대상에서 열 때 명령 기록이 보존됩니다.
  • 이제 값을 편집할 수 있는 데이터 모델 창에서 편집이 지원됩니다.
  • 인덱싱되지 않았기 때문에 TTD 추적이 더 명확해졌습니다.
  • 로컬 창의 성능이 향상 되었습니다 .
  • 명령 창 로그를 파일에 저장하는 리본 단추가 추가되었습니다.
  • LINQ 메서드의 기본 집합에 추가 . SelectMany(\<projection\>) 되었습니다.

1.0.1807.11002

이 버전에는 다음 업데이트가 포함됩니다.

  • 중단점 자동 저장 및 로드: 이 단계는 작업 영역을 대체하는 첫 번째 단계입니다. 이제 중단점을 저장하고 로드할 수 있습니다. 파일 메뉴의최근 항목 탭에서 이전에 디버그한 항목을 시작하면 이제 해당 세션에서 중단점이 로드됩니다. 이 기능을 확장하여 세션 전체에서 더 많은 정보를 유지할 계획입니다. 하드웨어 중단점(ba) 및 스레드 및 프로세스별 컨텍스트 및 조건과 같은 중단점의 기타 다양한 속성은 현재 저장되지 않습니다.

사소한 변경 및 버그 수정

  • 예외 및 이벤트 처리를 제어하기 위한 명령줄 옵션 -x, -xe, -xd, -xn, -xi이 추가되었습니다. 이러한 명령줄 옵션은 해당 명령줄 옵션처럼 동작합니다.
  • 메모 창에 굵게, 밑줄 및 기울기 서식 지정에 대한 지원이 추가되었습니다.
  • 일부 확대/축소 및 스크롤 문제가 해결되었습니다.
  • 명령, 메모리, 원본 또는 디스어셈블리 창에서 텍스트를 선택하면 선택한 텍스트의 다른 인스턴스가 강조 표시되도록 지원이 추가되었습니다.
  • 기호 로드를 중단하면 나머지 세션에 대해 기호 로드가 실패하는 버그가 수정되었습니다.
  • 이제 세션이 다시 시작될 때 NatVis가 제대로 다시 로드되도록 버그가 수정되었습니다.

1.0.1805.17002

이 버전에는 다음 업데이트가 포함됩니다.

  • 새 디스어셈블리 창: 이제 창에 다음이 포함됩니다.

    • 이제 위아래로 스크롤하면 가능하면 디스어셈블리가 더 많이 로드됩니다.
    • 강조 표시는 숫자, 코드 주소 및 작업 코드의 구문을 식별하는 데 사용됩니다.
    • 코드 기호를 선택하면 디스어셈블리 창이 해당 위치로 이동합니다.
    • 숫자 위로 마우스를 가져가면 해당 숫자를 다른 베이스로 변환하는 도구 설명이 표시됩니다.
    • 헤더를 사용하면 함수의 시작이 표시됩니다.
  • 더 빠른 원본 창: 원본 창이 더 빠르고 리소스 효율적이도록 업데이트되었습니다.

사소한 변경 및 버그 수정

  • 기호 캐싱과 관련된 문제가 해결되었습니다.
  • 대상이 중단되지 않았을 때 초기 브레이크 전환을 사용할 수 없는 일부 경우를 수정했습니다.
  • 사용 가능한 항목이 없는 명령 창에서 탭을 선택하면 커서가 이제 입력 필드에 유지되도록 지원이 추가되었습니다.
  • WinDbg Preview에 CAB 파일을 열 때 비트 수를 자동으로 검색하는 기능이 추가되었습니다.

1.0.1804.18003

이 버전에는 다음 업데이트가 포함됩니다.

  • 기호 상태와 취소 개선 사항: 디버거가 BUSY 심볼 로딩을 표시하는 경우가 있으며, 노이즈가 활성화되어 있지 않으면, 그 작업이 무엇인지 그리고 왜 수행하는지 알기 어렵습니다. 문제를 해결하는 데 도움이 되도록 기호를 로드할 때 수행하는 작업을 보다 효율적으로 통신하도록 WinDbg 미리 보기를 업데이트했습니다.

    무슨 일이 일어나고 있는지 확인할 수 있는 변경 사항 외에도 취소 기호를 보다 안정적으로 만드는 몇 가지 변경 사항도 적용했습니다. 로그 창에는 !sym 노이즈(noisy)를 활성화할 때 일반적으로 출력되는 일부 세부 정보가 포함되어 있습니다. 로그> 선택하면 로그를 켜고 기호를 다시 로드하지 않고도 전체 노이즈 기호 로드 출력이 표시됩니다.

  • 실험적 노트 창: WinDbg 미리 보기에 메모를 작성할 수 있는 창이 있습니다. 보기>노트를 선택하여 엽니다. 복사하여 붙여넣으면 DML 링크가 유지되고 명령 창인 것처럼 계속 작동합니다. 창이 열릴 때 노트 리본에서 노트 파일을 저장하고 로드할 수도 있습니다.

  • 실험적 빠른 원본 창: WinDbg 미리 보기의 성능을 향상시키기 위해 실험적인 새 원본 창이 더 효율적입니다. 상황에 맞는 메뉴 및 구문 강조 표시와 관련된 몇 가지 차이가 있지만, 이를 완료하기 전에 모든 사용자에게 이를 시도해 볼 수 있는 옵션을 제공하여 조기 피드백을 제공하려고 합니다. $UseFastSourceWindow을(를) 실행하여 사용합니다. 이전 항목으로 돌아가려면 다음을 실행합니다 $UseMonacoSourceWindow. 설정은 세션 간에 유지됩니다. 새 버전을 얻으려면 원본 창을 닫았다가 다시 열어야 합니다.

  • JSProvider API 버전 1.2: API 버전 1.2에 대한 지원을 선언하는 JavaScript 확장의 경우:

    • 스크립트를 .compareTo 종료하는 메서드가 있는 개체에는 사용자 지정 비교자가 있습니다. (비교 연산자는 DX 계산기 및 다른 위치에서 작동합니다. 예를 들면 IModelObject::Compare.)
    • 스크립트를 .equals 종료하는 메서드가 있는 개체에는 사용자 지정 같음 연산자가 있습니다. (==!= 연산자는 DX 평가기와 다른 곳에서도 작동합니다. 예를 들면 IModelObject::IsEqualTo.)
    • 스크립트에 들어오는 네이티브 또는 데이터 모델 개체는 그곳의 .compareTo.equals를 통해 사용자 지정 비교자나 같음 구현에 액세스할 수 있습니다.

사소한 변경 및 버그 수정

  • 짧은 이름에 대한 도메인 문제가 있을 때 더 쉽게 사용할 수 있도록 이제 정규화된 도메인 이름을 나열하는 .server 지원이 추가되었습니다.
  • 이제 원본 창에서 Ctrl+G가 작동할 수 있도록 지원이 추가되었습니다.
  • 디스어셈블리 창에 주소 표시줄을 추가했습니다.
  • 이제 WinDbg 미리 보기가 _NT_SYMBOL_PATH을(를) 더 예상된 방식으로 처리하도록 지원이 추가되었습니다.
  • -server 명령줄 옵션이 추가되었습니다.
  • 이제 TTD 데이터 모델 쿼리가 점진적으로 표시되도록 지원이 추가되었습니다. 중단하면 일부 결과가 계속 표시됩니다. 이 기능은 실험적이며 선택 사항입니다. dx @$cursession.TTD.AsyncQueryEnabled = 1을(를) 실행하여 이를 사용 설정합니다.
  • 이제 명령이 dps 참조하는 원본 파일에 대한 링크가 있도록 지원이 추가되었습니다.

1.1801.19001.0

이 버전에는 다음 업데이트가 포함됩니다.

  • 텍스트 강조 표시: 이제 디버거에서 선택한 텍스트의 모든 인스턴스를 직접 강조 표시할 수 있습니다. 이 기능을 사용하려면 명령 창에서 일부 텍스트를 선택한 다음 명령 리본에서 강조 표시를 선택합니다. Ctrl+Alt+H를 선택할 수도 있습니다. 이미 강조 표시된 텍스트에서 이러한 옵션 중 하나를 사용하면 강조 표시가 제거됩니다.

명령을 사용하려는 경우 다음 명령을 사용할 $hl 수 있습니다.

$hl ["someValueHere"]: 강조 표시는 텍스트를 제공합니다(또는 이미 강조 표시된 경우 강조 표시 취소). $hl clearAll: 강조 표시된 항목을 모두 지우세요. $hl caseSensitive [1|0]: 대/소문자를 구분하거나 대/소문자를 구분하지 않는 강조 표시 일치를 설정합니다. (기본값은 대/소문자를 구분하지 않습니다.)

이 릴리스에는 몇 가지 사소한 버그 수정도 포함되어 있습니다.

1.1712.15003.0

이 버전에는 다음 업데이트가 포함됩니다.

  • TTD 메모리 쿼리: 이제 현재 호출을 쿼리하는 방법과 비슷한 방식으로 메모리 액세스에 대한 TTD를 쿼리할 수 있습니다. 이제 특정 메모리 범위에 액세스하는 모든 읽기, 쓰기 및 실행을 찾을 수 있습니다.

    • 읽기 및 쓰기 예제: dx @$cursession.TTD.Memory(startAddress, endAddress, "rw")
    • 고유 실행 예제: dx @$cursession.TTD.Memory(startAddress, endAddress, "ec")
  • 설정 변경: WinDbg 미리 보기는 이제 기호 경로와 원본 경로를 포함하여 세션 간에 설정을 자동으로 저장합니다.

JavaScript 개선 사항

  • 이제 JavaScript의 64비트 숫자와 숫자에는 실제 64비트 모듈로 작업을 허용하는 모듈로 메서드가 포함되어 있습니다.
  • 이제 JavaScript에 정의된 개체는 사용자 지정 비교 가능 또는 공평한 개념을 구현할 수 있습니다. dx에서 표준 C++ 연산자 또는 LINQ 연산을 사용하여 작동합니다. 이 기능을 사용하려면 스크립트가 호스트 API의 새 버전을 지원한다는 것을 initializeScript 배열에 선언한 후 레코드 new host.apiVersionSupport(1, 2)을 삽입해야 합니다. 그런 다음, dx 또는 데이터 모델 창 LINQ 쿼리에서 이러한 함수를 사용할 수 있습니다. 메서드가 .compareTo(other)를 구현하면 비교가 가능합니다(비교 연산자가 작동하고 LINQ에서 dx이 작동합니다). 메서드가 음수 값을 this < other반환하는 경우 . 메서드가 0을 반환하면, this == other 처리를 수행합니다. 메서드가 양수 값을 this > other반환하는 경우 . 메서드가 .equals(other)를 구현하는 경우에는 공평합니다(==dx와 LINQ에서 작동합니다). 메서드는 true 또는 false를 반환해야 합니다.

사소한 변경 및 버그 수정

  • 부팅 디버깅 중에 스택로컬 창이 작동하지 않는 버그가 수정되었습니다.
  • LM의 출력을 ProductVersion 및 유사한 필드를 보다 정확하게 보고하도록 업데이트했습니다.
  • TTD 세션 중에 Step Out Back 버튼을 활성화했습니다.
  • -lsrcpath대한 지원이 추가되었습니다.
  • 아래로 스크롤할 때 헤더가 사라지지 않도록 로컬, 조사식모델 창의 머리글이 수정되었습니다.
  • Alt+Tab을 사용하여 WinDbg 미리 보기로 돌아갈 때 명령 창이 커서 위치를 제대로 유지할 수 있도록 지원이 추가되었습니다.
  • 자세한 정보 표시 모드를 전환하기 위한 Ctrl+Alt+V 바로 가기가 추가되었습니다.
  • 이제 명령 탭을 선택하고 유지(또는 마우스 오른쪽 단추로 클릭)하고 자동 스크롤 해제를 선택하여 명령 창의 자동 제어를 사용하지 않도록 설정할 수 있도록 지원이 추가되었습니다.
  • 이제 실행 파일 시작 고급 페이지를 통해 자식 프로세스를 디버그할 수 있도록 지원이 추가되었습니다.

1.0.14.0

이 버전에는 다음 업데이트가 포함됩니다.

  • 향상된 프로세스 서버 환경: 파일 메뉴의 새 알림에는 연결되고 상호 작용하는 프로세스 서버가 표시됩니다. 이러한 변경 내용의 일부로 디버깅 세션이 종료되면 프로세스 서버 연결이 유지되고 파일 메뉴에서 연결을 끊을 수 있습니다.
  • 보기 리본 메뉴의 새 미리 설정된 레이아웃 옵션: 보기 리본에서 새 레이아웃 옵션을 사용할 수 있습니다. 현재 세 가지 레이아웃이 있습니다. 기본값, 디스어셈블리에 중점을 두는 레이아웃, 최소 레이아웃 1개.
  • 시간 이동 디버깅 리본: TTD 추적을 디버그할 때 향상된 시간 이동 리본이 나타납니다.
  • JavaScript 스크립트의 메타데이터: 이제 JavaScript 확장은 속성 및 기타 구문에 대한 메타데이터를 반환할 수 있습니다. 이제 확장에서 도움말 텍스트를 제공하고 값에 대한 표시 기수를 나타내며, 추가 기능을 수행할 수 있습니다. 메타데이터는 Symbol.metadataDescriptor의 존재 여부 또는 host.metadata.defineMetadata의 명시적 호출을 통해 객체에 메타데이터 설명자를 배치하여 제공됩니다. 함수 반환값, 반복된 값 및 기타 값 컨텍스트는 해당 값에 대한 메타데이터를 host.metadata.valueWithMetadata로 반환할 수 있습니다.
  • JavaScript API 업데이트: JavaScript 공급자 내의 API에 잠재적으로 소스 수준 호환성이 손상될 수 있는 일부 변경이 수행되었습니다(네이티브 개체의 새 프로젝션된 메서드 및 속성 포함). 기존 확장은 새 버전의 JsProvider API를 지원한다는 것을 나타내지 않고 잠재적으로 호환성이 손상되는 변경 내용을 볼 수 없습니다. 새 API 버전에 대한 지원은 버전 1.1을 주장하면서 반환된 배열에 host.apiVersionSupport 레코드를 initializeScript에 배치하여 표시됩니다.

API 버전 1.1의 변경 내용

  • host.getModuleSymbolhost.getModuleType 함수는 기호를 찾을 수 없는 경우 예외를 throw하는 대신 null을 반환합니다.
  • 모든 네이티브 개체에는 주소 속성 외에도 .targetLocation주소 속성이 있습니다. 개체에 주소가 없으면 속성에 액세스할 때 예외가 throw됩니다.
  • 모든 네이티브 개체에는 개체의 속성에 액세스하기 위한 새 .getObjectValue 메서드가 있으며 .setObjectValue , 이는 JavaScript가 개체에 배치하는 이름(예: address)과 충돌할 수 있습니다.

추가 JavaScript 변경 내용

  • 이제 JavaScript 확장은 데이터 모델 개체와 delete 연산자를 통해 Object.defineProperty 속성을 추가하고 제거할 수 있습니다. JavaScript 클래스를 부모 모델 또는 형식 서명으로 추가하거나 등록하는 것이 개체 모델을 조작하는 기본 방법입니다.
  • 이제 JavaScript 확장은 새 host.setModuleSymbol API를 통해 디버그 대상의 모듈 내에서 전역 변수를 수정할 수 있습니다.
  • 64비트 라이브러리 형식(예: .add, .subtract.multiply.divide)에 있는 모든 수학 함수도 JavaScript 번호에 있습니다.
  • JavaScript 함수와 속성이 이제 사용자 지정 마샬링을 통해 열거형 값을 반환할 수 있습니다. 함수 또는 속성 접근자가 host.typeSystem.marshalAs(value, type…)을 반환하여 이러한 사용자 지정 마샬링을 불러일으킬 수 있습니다.
  • 이제 스크립트 디버거의 중단점 명령은 줄/열 위치 외에도 함수 이름에서 중단될 수 있습니다.
  • JavaScript 확장의 타입 객체는 .containingModule 속성을 통해 그들이 포함된 모듈에 액세스할 수 있습니다.

사소한 변경 및 버그 수정

  • 덜 혼란스럽게 조건부 리본 탭의 서식을 수정했습니다.
  • 성능 향상을 위해 구문 분석에서 더 엄격하게 DML을 다시 작업했습니다.
  • Ctrl+F의 성능 및 동작으로 다양한 수정을 했습니다.
  • 관리자 권한 없이 TTD를 사용하기 전 실행할 때 경고가 추가되었습니다.
  • 자동 대상 비트 감지를 재정의하는 옵션이 추가되었습니다.
  • 사용할 수 없는 경우 다양한 파일 메뉴 및 리본 옵션을 사용하지 않도록 설정했습니다(예: 덤프 파일에서 이동 ).

알려진 문제

SOS는 x86 추적에서 작동하지 않습니다.

1.0.13.0

이 버전은 시간 이동 추적을 추가합니다. 시간 이동 디버깅을 사용하면 프로세스를 기록한 다음 나중에 앞뒤로 재생할 수 있습니다. TTD를 사용하면 버그를 찾을 때까지 문제를 재현하지 않고 디버거 세션을 "되감기"하여 문제를 보다 쉽게 디버그할 수 있습니다. 자세한 내용은 시간 이동 디버깅: 개요를 참조하세요.

1.0.12.0

이 버전은 WinDbg 미리 보기의 첫 번째 릴리스입니다. WinDbg 미리 보기에서 사용할 수 있는 기능에 대한 일반적인 내용은 WinDbg의 주요 기능을 참조하세요.