Đổ bộ nhớ đầy cái gì. Kết xuất bộ nhớ là gì và làm thế nào để đóng nó. Xem “Dump” là gì trong các từ điển khác

Xin chào các bạn, hôm nay chúng ta sẽ thảo luận về một chủ đề thú vị sẽ giúp ích cho bạn trong tương lai khi màn hình xanh chết chóc (BSoD) xuất hiện.

Giống như tôi, nhiều người dùng khác đã phải quan sát sự xuất hiện của một màn hình có nền xanh lam, trên đó có viết gì đó (màu trắng trên xanh lam). Hiện tượng này cho thấy một sự cố nghiêm trọng, cả về phần mềm, chẳng hạn như xung đột trình điều khiển và sự cố vật lý của một số thành phần máy tính.

Gần đây tôi lại gặp phải sự cố màn hình xanh trong Windows 10, nhưng tôi đã nhanh chóng loại bỏ nó và sẽ sớm thông báo cho bạn về vấn đề đó.

Muốn ? Sau đó theo liên kết.

Vì vậy, hầu hết người dùng không biết rằng BSoD có thể được phân tích để sau này hiểu được các vấn đề lỗi nghiêm trọng. Đối với những trường hợp như vậy, Windows sẽ tạo các tệp đặc biệt trên đĩa và chúng tôi sẽ phân tích chúng.

Có ba loại kết xuất bộ nhớ:

Kết xuất bộ nhớ đầy đủ– chức năng này cho phép bạn lưu hoàn toàn nội dung của RAM. Nó hiếm khi được sử dụng, vì hãy tưởng tượng rằng bạn có 32 GB RAM, khi kết xuất đầy đủ, tất cả ổ đĩa này sẽ được lưu trữ trên đĩa.

Đổ lõi– lưu thông tin chế độ kernel.

Kết xuất bộ nhớ nhỏ– lưu một lượng nhỏ thông tin lỗi và các thành phần được tải có mặt tại thời điểm xảy ra sự cố hệ thống. Chúng tôi sẽ sử dụng loại kết xuất này vì nó sẽ cung cấp cho chúng tôi đủ thông tin về BSoD.

Vị trí của cả kết xuất nhỏ và đầy đủ đều khác nhau, ví dụ: kết xuất nhỏ nằm ở đường dẫn sau: %systemroot%\minidump.

Kết xuất đầy đủ ở đây: %systemroot%.

Có nhiều chương trình khác nhau để phân tích kết xuất bộ nhớ, nhưng chúng tôi sẽ sử dụng hai chương trình. Đầu tiên là Microsoft Kernel Debuggers, đúng như tên gọi, một tiện ích của Microsoft. Bạn có thể tải nó từ trang web chính thức. Chương trình thứ hai là BlueScreenView, một chương trình miễn phí, tải xuống từ đây.

Phân tích kết xuất bộ nhớ bằng trình gỡ lỗi hạt nhân của Microsoft

Đối với các phiên bản hệ thống khác nhau, bạn cần tải xuống một loại tiện ích khác. Ví dụ: đối với hệ điều hành 64 bit thì cần có chương trình 64 bit, đối với hệ điều hành 32 bit thì cần có phiên bản 32 bit.

Đó chưa phải là tất cả, bạn cần tải xuống và cài đặt gói ký hiệu gỡ lỗi cần thiết cho chương trình. Nó được gọi là Biểu tượng gỡ lỗi. Mỗi phiên bản của gói này cũng được tải xuống theo một hệ điều hành cụ thể, trước tiên hãy tìm hiểu xem bạn có hệ thống gì rồi tải xuống. Để bạn không cần phải tìm kiếm những biểu tượng này ở bất cứ đâu, đây là liên kết tải xuống. Việc cài đặt tốt nhất nên được thực hiện theo đường dẫn này: %systemroot%\symbols.

Bây giờ bạn có thể khởi chạy trình gỡ lỗi của chúng tôi, cửa sổ của nó sẽ trông như thế này:

Trước khi phân tích các kết xuất, chúng tôi sẽ định cấu hình một số thứ trong tiện ích. Đầu tiên, chúng ta cần cho chương trình biết nơi chúng ta đã cài đặt các biểu tượng gỡ lỗi. Để thực hiện việc này, hãy nhấp vào nút “Tệp” và chọn mục “Đường dẫn tệp biểu tượng”, sau đó chỉ ra đường dẫn đến các ký hiệu.


Chương trình cho phép bạn trích xuất các ký hiệu trực tiếp từ web, do đó bạn thậm chí không cần phải tải chúng xuống (rất tiếc cho những ai đã tải chúng xuống). Chúng sẽ được lấy từ máy chủ của Microsoft, vì vậy mọi thứ đều được bảo mật. Vì vậy, bạn cần mở lại “Tệp”, sau đó mở “Đường dẫn tệp biểu tượng” và nhập lệnh sau:

SRV*%systemroot%\symbols*http://msdl.microsoft.com/download/symbols


Vì vậy, chúng tôi đã chỉ ra cho chương trình rằng các ký hiệu sẽ được lấy từ mạng. Khi chúng tôi đã thực hiện xong việc này, hãy nhấp vào “Tệp” và chọn “Lưu không gian làm việc”, sau đó nhấp vào OK.

Đó là tất cả. Chúng tôi đã cấu hình chương trình đúng cách, bây giờ chúng tôi bắt đầu phân tích các kết xuất bộ nhớ. Trong chương trình nhấn nút "Tài liệu", Sau đó "Mở bãi chứa sự cố" và chọn tập tin mong muốn.

Trình gỡ lỗi hạt nhân sẽ bắt đầu phân tích tệp và sau đó đưa ra kết quả về nguyên nhân gây ra lỗi.


Trong cửa sổ xuất hiện, bạn có thể nhập lệnh. Nếu chúng ta vào !phân tích –v, sau đó chúng tôi sẽ có thêm thông tin.

Đó là tất cả với chương trình này. Để dừng trình gỡ lỗi, chọn "Gỡ lỗi" và mục "Dừng gỡ lỗi".

Phân tích kết xuất bộ nhớ bằng BlueScreenView

Chương trình BlueScreenView cũng thích hợp để phân tích các lỗi và BSoD khác nhau; nó có giao diện đơn giản nên sẽ không có vấn đề gì khi thành thạo nó.

Tải xuống chương trình từ liên kết ở trên và cài đặt. Sau khi khởi chạy tiện ích, bạn cần cấu hình nó. Vào phần thông số: “Cài đặt” - “Cài đặt nâng cao”. Một cửa sổ nhỏ sẽ mở ra với một vài mục. Trong đoạn đầu tiên, bạn cần chỉ ra vị trí của các vùng lưu trữ bộ nhớ. Chúng thường nằm trong đường dẫn C:\WINDOWS\Minidump. Sau đó chỉ cần nhấp vào nút "Mặc định".


Bạn có thể thấy gì trong chương trình? Chúng tôi có các mục menu, một phần của cửa sổ có tên của các tệp kết xuất và phần thứ hai của cửa sổ – nội dung của các kết xuất bộ nhớ.


Như tôi đã nói ở đầu bài viết, các bãi chứa có thể lưu trữ trình điều khiển, ảnh chụp màn hình của chính “màn hình chết chóc” và các thông tin hữu ích khác có thể hữu ích cho chúng ta.

Vì vậy, trong phần đầu tiên của cửa sổ, nơi chứa các tệp kết xuất, hãy chọn kết xuất bộ nhớ mà chúng ta cần. Trong phần tiếp theo của cửa sổ, chúng ta xem nội dung. Trình điều khiển nằm trong ngăn xếp bộ nhớ được đánh dấu bằng màu đỏ. Chúng chính xác là nguyên nhân gây ra màn hình xanh chết chóc.

Trên Internet, bạn có thể tìm thấy mọi thứ về mã lỗi và trình điều khiển có thể là nguyên nhân gây ra BSoD. Để thực hiện việc này, hãy nhấp vào “Tệp”, sau đó “Tìm mã lỗi + Driver trên Google”.


Bạn chỉ có thể hiển thị các trình điều khiển có mặt tại thời điểm xảy ra lỗi. Để thực hiện việc này, hãy nhấp vào “Cài đặt” - “Chế độ cửa sổ dưới cùng” - “Chỉ tìm thấy trình điều khiển trong ngăn xếp sự cố”. Hoặc nhấn phím F7.

Để hiển thị ảnh chụp màn hình BSoD, nhấn F8.

Để hiển thị tất cả các trình điều khiển và tập tin, nhấn F6.

Vâng đó là tất cả. Bây giờ bạn đã biết cách tìm hiểu về sự cố Màn hình xanh chết chóc và nếu có điều gì xảy ra, hãy tìm giải pháp trên Internet hoặc trên trang web này. Bạn có thể đưa ra mã lỗi của mình, mình sẽ cố gắng viết từng bài để giải quyết vấn đề.

Cũng đừng quên đặt câu hỏi trong phần bình luận.

Trong chuong Kết xuất sự cố được xác định bởi các tham số sau:

REG_DWORD-tham số Tự động khởi động lại có ý nghĩa 0x1(lựa chọn Thực hiện khởi động lại tự động cửa sổ dưới cửa sổ Thuộc tính của hệ thống);

REG_DWORD-tham số CrashDumpĐã bật có ý nghĩa 0x0, nếu kết xuất bộ nhớ không được tạo; 0x1Kết xuất bộ nhớ đầy; 0x2Kết xuất bộ nhớ hạt nhân; 0x3Kết xuất bộ nhớ nhỏ (64KB);

REG_EXPAND_SZ-tham số Tập tin dump có ý nghĩa %SystemRoot%\MEMORY.DMP(vị trí lưu trữ tệp kết xuất);

REG_DWORD-tham số Đăng nhậpSự kiện có ý nghĩa 0x1(lựa chọn Nhật ký sự kiện cửa sổ );

REG_EXPAND_SZ-tham số MinidumpDir có ý nghĩa %SystemRoot%\Minidump(lựa chọn);

REG_DWORD-tham số Ghi đè có ý nghĩa 0x1(lựa chọn Thay thế file có sẵn cửa sổ );

REG_DWORD-tham số Gửi thông báo có ý nghĩa 0x1(lựa chọn Gửi thông báo hành chính cửa sổ ).

Cách hệ thống tạo tệp bộ nhớ khẩn cấp

Trong quá trình khởi động, hệ điều hành sẽ kiểm tra các tham số tạo khẩn cấp trong phần đăng ký . Nếu ít nhất một tham số được chỉ định, hệ thống sẽ tạo bản đồ các khối đĩa chiếm trên ổ đĩa khởi động và lưu nó vào bộ nhớ. Hệ thống cũng xác định thiết bị đĩa nào kiểm soát ổ đĩa khởi động và tính toán tổng kiểm tra cho hình ảnh trong bộ nhớ và đối với các cấu trúc dữ liệu phải là số nguyên để có thể thực hiện các thao tác I/O.

Sau khi thất bại, nhân hệ thống sẽ kiểm tra tính toàn vẹn của bản đồ tệp trang, tệp đĩa và cấu trúc điều khiển đĩa. Nếu tính toàn vẹn của các cấu trúc này không bị vi phạm thì nhân hệ thống sẽ gọi các chức năng I/O đĩa đặc biệt , được thiết kế để lưu hình ảnh bộ nhớ sau khi bị lỗi. Các chức năng I/O này độc lập và không dựa vào các dịch vụ hạt nhân vì các chương trình chịu trách nhiệm ghi kết xuất sự cố không thể đưa ra bất kỳ giả định nào về phần nào của hạt nhân hệ thống hoặc thiết bị bị hỏng khi xảy ra sự cố. Nhân hệ thống ghi dữ liệu từ bộ nhớ vào bản đồ khu vực của tệp hoán trang (nó không phải sử dụnghệ thống tập tin).

Đầu tiên, nhân hệ thống kiểm tra trạng thái của từng thành phần liên quan đến quá trình kết xuất. Điều này được thực hiện để khi ghi trực tiếp vào các vùng đĩa, dữ liệu nằm bên ngoài tệp không bị hỏng. Kích thước tệp phải là 1 MB lớn hơn kích thước của bộ nhớ vật lý, vì khi thông tin được ghi vào, một tiêu đề sẽ được tạo có chứa chữ ký khẩn cấp và các giá trị của một số biến nhân hệ thống quan trọng. Tiêu đề chiếm ít hơn 1 MB, nhưng hệ điều hành có thể tăng (hoặc giảm) kích thước của tệp hoán trang ít nhất 1 MB.

Sau khi khởi động hệ thống Trình quản lý phiên (Trình quản lý phiên Windows NT; địa chỉ đĩa – \WINDOWS\system32\smss.exe) khởi tạo các tệp hệ thống, sử dụng chức năng riêng của nó để tạo từng tệp NtCreatePagingFile. NtCreatePagingFile xác định xem tệp đang được khởi tạo có tồn tại hay không và nếu có thì nó có tiêu đề hay không . Nếu có tiêu đề thì NtCreatePagingFile gửi đến Trình quản lý phiên mã đặc biệt. Sau đó Trình quản lý phiên bắt đầu quá trình đăng nhập vào winlogon (Chương trình đăng nhập Windows NT; địa chỉ đĩa – \WINDOWS\system32\winlogon.exe), được thông báo về sự tồn tại của trường hợp khẩn cấp . đăng nhập vào winlogon bắt đầu chương trình LưuKết xuất (Chương trình sao chép bộ nhớ Windows NT; địa chỉ đĩa – \WINDOWS\system32\savedump.exe), phân tích tiêu đề và xác định các hành động tiếp theo trong trường hợp khẩn cấp.

Nếu tiêu đề chỉ ra sự tồn tại , Cái đó LưuKết xuất sao chép dữ liệu từ một tệp vào một tệp khẩn cấp có tên được chỉ định REG_EXPAND_SZ-tham số Tập tin dump phần . Tạm biệt LưuKết xuất viết lại tập tin , hệ điều hành không sử dụng phần tệp trang chứa trường hợp khẩn cấp . Trong thời gian này, dung lượng bộ nhớ ảo có sẵn cho hệ thống và ứng dụng sẽ giảm đi (Đồng thời trên màn hình có thể xuất hiện thông báo thiếu bộ nhớ ảo). Sau đó LưuKết xuất thông báo cho người quản lý bộ nhớ rằng quá trình lưu đã hoàn tất , và anh ấy phát hành phần đó tập tin trong đó nó được lưu trữ , để sử dụng chung.

Lưu tập tin , chương trình LưuKết xuất ghi lại việc tạo ra trường hợp khẩn cấp trong nhật ký sự kiện , ví dụ: “Máy tính đã được khởi động lại sau một lỗi nghiêm trọng: 0x100000d1 (0xc84d90a6, 0x00000010, 0x00000000, 0xc84d90a6). Bản sao bộ nhớ đã lưu: C:\WINDOWS\Minidump\Mini060309-01.dmp" .

Kết xuất bộ nhớ đầy đủ ghi toàn bộ nội dung của bộ nhớ khi xảy ra lỗi nghiêm trọng. Đối với tùy chọn này, bạn phải có tệp hoán trang trên ổ đĩa khởi động, kích thước của tệp này bằng dung lượng của tất cả RAM vật lý cộng với 1 MB. Mặc định đầy đủ bộ nhớ được ghi vào một tập tin %SystemRoot%\Memory.dmp. Nếu xảy ra lỗi mới và một tệp hoàn chỉnh mới được tạo bộ nhớ (hoặc bộ nhớ kernel), tập tin trước đó sẽ được thay thế (ghi đè). Tham số Kết xuất bộ nhớ đầy đủ không khả dụng trên các hệ thống chạy hệ điều hành 32 bit và 2 RAM trở lên.

Nếu xảy ra lỗi mới và một tệp hoàn chỉnh mới được tạo bộ nhớ tập tin trước đó được thay thế.

Kết xuất bộ nhớ hạt nhân chỉ ghi bộ nhớ kernel, giúp quá trình ghi dữ liệu vào log khi hệ thống dừng đột ngột diễn ra nhanh hơn. Tùy thuộc vào dung lượng bộ nhớ vật lýtrong trường hợp này tệp trang yêu cầu 50 đến 800 MB hoặc một phần ba bộ nhớ vật lý trên ổ đĩa khởi động. bộ nhớ kernel được ghi vào một tập tin %SystemRoot%\Memory.dmp.

Cái này không bao gồm bộ nhớ chưa được phân bổ hoặc bộ nhớ được phân bổ cho các chương trình chế độ. Nó chỉ bao gồm bộ nhớ được phân bổ cho kernel và lớp dành riêng cho phần cứng ( HAL) V Windows 2000 và các phiên bản mới hơn của hệ thống, cũng như bộ nhớ được phân bổ cho chế độ kernel và các chương trình chế độ kernel khác. Trong hầu hết các trường hợp điều này là lựa chọn ưa thích nhất. Nó chiếm ít không gian hơn so với một cái đầy đủ bộ nhớ, đồng thời chỉ loại trừ những vùng bộ nhớ có nhiều khả năng không liên quan đến lỗi nhất.

Khi xảy ra lỗi mới và một tệp mới được tạo bộ nhớ kernel, tập tin trước đó được thay thế.

Kết xuất bộ nhớ nhỏ ghi lại lượng thông tin hữu ích nhỏ nhất cần thiết để xác định nguyên nhân của vấn đề. Để tạo ra một cái nhỏ bộ nhớ yêu cầu kích thước tệp trang ít nhất là 2 MB về khối lượng khởi động.

Tệp nhỏ bộ nhớ chứa các thông tin sau:

– thông báo về một lỗi nghiêm trọng, các tham số của nó và dữ liệu khác;

- danh sách đã tải xuống;

- bối cảnh ( Trung Quốc) nơi xảy ra lỗi;

TIẾN HÀNH) đối với quá trình gây ra lỗi;

– xử lý thông tin và bối cảnh hạt nhân ( ETHREAD) đối với luồng gây ra lỗi;

– Ngăn xếp cuộc gọi chế độ hạt nhân cho luồng gây ra lỗi.

Tập tin nhỏ bộ nhớ được sử dụng khi không gian đĩa cứng bị hạn chế. Tuy nhiên, do thông tin chứa trong đó bị hạn chế nên việc phân tích tệp này không phải lúc nào cũng phát hiện được các lỗi không trực tiếp do luồng đang chạy tại thời điểm xảy ra lỗi.

Nếu xảy ra lỗi sau và tệp nhỏ thứ hai được tạo bộ nhớ, tập tin trước đó sẽ được giữ lại. Mỗi tập tin bổ sung được đặt một tên duy nhất. Ngày được mã hóa trong tên tập tin. Ví dụ, Mini051509-01.dmp- đây là tập tin đầu tiên bộ nhớ, được tạo vào ngày 15 tháng 5 năm 2009 Danh sách tất cả các tệp nhỏ bộ nhớ được lưu trữ trong một thư mục %SystemRoot%\Minidump.

hệ điều hành , chắc chắn, đáng tin cậy hơn nhiều so với các phiên bản trước - nhờ nỗ lực của cả hai nhà phát triển Microsoft, cả nhà phát triển phần cứng và nhà phát triển phần mềm ứng dụng . Tuy nhiên, các tình huống khẩn cấp - tất cả các loại trục trặc và sự cố hệ thống - là không thể tránh khỏi, và tùy thuộc vào việc liệukiến thức và kỹ năng trong việc loại bỏ chúng, điều này phụ thuộc vào việc anh ta sẽ phải dành vài phút để khắc phục sự cố (ví dụ: cập nhật/gỡ lỗi hoặc cài đặt lại chương trình ứng dụng gây ra lỗi) hay vài giờ để cài đặt lại/cấu hình hệ điều hành và phần mềm ứng dụng (điều này không đảm bảo sẽ không có lỗi và sự cố trong tương lai!).

Nhiều quản trị viên bỏ qua việc phân tích các kết xuất lỗi các cửa sổ , tin rằng làm việc với họ là quá khó khăn. Việc này khó nhưng vẫn có thể thực hiện được: ngay cả khi, chẳng hạn, việc phân tích một trong số mười người sẽ thành công - những nỗ lực dành cho việc nắm vững các kỹ thuật đơn giản nhất để phân tích các tình huống khẩn cấp , sẽ không vô ích!..

Nhìn chung, với tư cách là người dùng, bạn không nên quan tâm đến việc kết xuất bộ nhớ. Đây chỉ là thông tin về lỗi hệ thống, lý tưởng nhất là thông tin này nên được gửi tới các nhà phát triển của Microsoft để tìm và sửa các lỗi nghiêm trọng. Nếu bạn không có kế hoạch tham gia vào hoạt động từ thiện như vậy thì bạn có thể vô hiệu hóa kết xuất.

Việc tắt kết xuất bộ nhớ sẽ không ảnh hưởng đến hiệu suất hệ thống dưới bất kỳ hình thức nào. Khi bạn sử dụng máy tính, hệ thống không truy cập vào dump dù có bật hay không. Quá trình ghi chỉ xảy ra khi Windows được “đưa” tới BSOD (màn hình xanh). Nó kéo dài nhiều nhất là vài giây.

Các loại bãi chứa

Để phát triển chung, chúng ta hãy làm quen với các loại bãi chứa. Có ba trong số họ: bãi chứa nhỏ, bãi chứa lõi và bãi chứa lớn. Một bãi chứa nhỏ lưu trữ thông tin quan trọng nhất về vấn đề. Các nhà phát triển thực sự phải ghép nó lại với nhau từng chút một. Đối với một kết xuất nhỏ, bạn cần phân bổ 2 MB bộ nhớ ảo (tệp hoán đổi).

Đổ lõi- loại bãi chứa phổ biến nhất. Tùy chọn này thường là mặc định. Nó ghi lại tất cả bộ nhớ được phân bổ cho lõi - trạng thái của trình điều khiển đang hoạt động và dữ liệu ở mức độ phụ thuộc vào phần cứng. Để làm được điều này, bạn cần phân bổ khoảng 30% tổng dung lượng RAM. Ví dụ: nếu bạn có 2 GB DDR thì hãy phân bổ khoảng 700 MB cho tệp hoán đổi.

Kết xuất đầy đủ ghi lại toàn bộ nội dung của RAM. Theo đó, để nó hoạt động, bạn sẽ phải phân bổ cùng một dung lượng cho tệp hoán trang như RAM. Chúng ta cần kết xuất đầy đủ cho chế độ ngủ đông, khi tất cả dữ liệu từ RAM được tải vào ổ cứng.

Trong Windows 7, các tham số kết xuất được ẩn khá sâu. Nhập vào thanh tìm kiếm trong menu " Bắt đầu" từ " hệ thống", Ví dụ.

Chọn kết quả " Hệ thống" Một cửa sổ sẽ mở ra. Có một danh sách các tùy chọn ở trên cùng bên phải, hãy chọn tùy chọn cuối cùng - “ Thiết lập hệ thống nâng cao».


Một trong những lỗi phổ biến nhất của Windows là các ngoại lệ của hệ thống mà người dùng nhìn thấy dưới dạng “màn hình xanh chết chóc” (BSOD). Theo quy định, lỗi nghiêm trọng này xảy ra do trục trặc của trình điều khiển, phần cứng (thường là khi tải HĐH) hoặc do hoạt động của vi-rút và phần mềm chống vi-rút.

Màn hình xanh chết chóc chứa thông tin về nguyên nhân gây ra ngoại lệ (dưới dạng mã lỗi STOP có dạng 0x0000007b), địa chỉ bộ nhớ được truy cập khi xảy ra ngoại lệ và các thông tin hữu ích khác. Thông tin như vậy được gọi là lỗi STOP, các tham số biến trong đó chính xác là địa chỉ bộ nhớ. Đôi khi nó còn chứa tên file gây ra ngoại lệ.

Tất cả thông tin này không được hiển thị trên màn hình trong thời gian dài (tối đa 100 giây), sau đó máy tính sẽ khởi động lại. Trong thời gian ngắn này, kết xuất bộ nhớ thường được tạo và ghi vào một tệp. Một trong những phương pháp chuyên nghiệp quan trọng để chẩn đoán lỗi là phân tích kết xuất bộ nhớ, phương pháp này sẽ được thảo luận chi tiết trong bài viết này.

Bãi rác là gì

  • dump (tiếng Anh) – đống rác; bãi rác; hố; khu ổ chuột.
  • dump (kết xuất bộ nhớ) – 1) kết xuất, xuất nội dung của RAM ra máy in hoặc màn hình; 2) một “ảnh chụp nhanh” của RAM; dữ liệu thu được từ việc bán phá giá; 3) loại bỏ khẩn cấp, tắt máy, thiết lập lại.
  • đổ rác - đổ rác, đổ rác.

Cài đặt để lưu kết xuất bộ nhớ được lưu trữ trong sổ đăng ký hệ thống Windows.

Thông tin về kết xuất bộ nhớ trong sổ đăng ký hệ thống:

Trong phần Sổ đăng ký Windows, kết xuất sự cố được xác định bởi các tham số sau:

– Tham số REG_DWORD AutoReboot có giá trị 0×1 (tùy chọn Tự động khởi động lại cửa sổ phụ Boot and Restore của hộp thoại System Properties);

– Tham số REG_DWORD CrashDumpEnabled có giá trị 0×0, nếu kết xuất bộ nhớ không được tạo; 0×1 – Kết xuất bộ nhớ hoàn chỉnh; 0×2 – Kết xuất bộ nhớ hạt nhân; 0x3 – Kết xuất bộ nhớ nhỏ (64KB);

– Tham số REG_EXPAND_SZ DumpFile với giá trị mặc định %SystemRoot%\MEMORY.DMP (vị trí lưu trữ tệp kết xuất);

– Tham số REG_DWORD LogEvent với giá trị mặc định là 0×1 (tùy chọn Ghi sự kiện vào nhật ký hệ thống của cửa sổ Boot and Recovery);

– Tham số REG_EXPAND_SZ MinidumpDir với giá trị mặc định %SystemRoot%\Minidump (Tùy chọn thư mục kết xuất nhỏ của cửa sổ Boot và Recovery);

– Tham số REG_DWORD Ghi đè với giá trị mặc định là 0×1 (tùy chọn Ghi đè tệp kết xuất hiện có của cửa sổ Khởi động và Khôi phục);

– Tham số REG_DWORD SendAlert có giá trị mặc định là 0x1 (tùy chọn Gửi cảnh báo quản trị của cửa sổ Boot and Recovery).

Cách hệ thống tạo tệp kết xuất sự cố

Trong quá trình khởi động, hệ điều hành sẽ kiểm tra cài đặt kết xuất sự cố trong khoá đăng ký. Nếu ít nhất một tham số được chỉ định, hệ thống sẽ tạo bản đồ các khối đĩa bị tệp hoán trang chiếm giữ trên ổ đĩa khởi động và lưu nó vào bộ nhớ. Hệ thống cũng xác định trình điều khiển thiết bị đĩa nào kiểm soát ổ đĩa khởi động, tính toán tổng kiểm tra hình ảnh bộ nhớ của trình điều khiển và cấu trúc dữ liệu phải là số nguyên để trình điều khiển thực hiện các thao tác I/O.

Sau khi xảy ra lỗi, nhân hệ thống sẽ kiểm tra tính toàn vẹn của bản đồ tệp trang, trình điều khiển đĩa và cấu trúc điều khiển trình điều khiển đĩa. Nếu tính toàn vẹn của các cấu trúc này không bị vi phạm thì nhân hệ thống sẽ gọi các chức năng I/O đặc biệt của trình điều khiển đĩa được thiết kế để lưu hình ảnh bộ nhớ sau khi hệ thống bị lỗi. Các chức năng I/O này độc lập và không dựa vào các dịch vụ hạt nhân vì các chương trình chịu trách nhiệm ghi kết xuất sự cố không thể đưa ra bất kỳ giả định nào về phần nào của hạt nhân hệ thống hoặc trình điều khiển thiết bị bị hỏng khi xảy ra sự cố. Nhân hệ thống ghi dữ liệu từ bộ nhớ vào bản đồ khu vực tệp hoán trang (nó không phải sử dụng trình điều khiển hệ thống tệp).

Đầu tiên, nhân hệ thống kiểm tra trạng thái của từng thành phần liên quan đến quá trình kết xuất. Điều này được thực hiện để khi ghi trực tiếp vào các cung đĩa, nó không làm hỏng dữ liệu nằm bên ngoài tệp trang. Kích thước của tệp trang phải lớn hơn 1 MB so với kích thước của bộ nhớ vật lý, vì khi thông tin được ghi vào kết xuất, một tiêu đề sẽ được tạo có chứa chữ ký kết xuất sự cố và các giá trị của một số biến nhân hệ thống quan trọng. Tiêu đề nhỏ hơn 1 MB nhưng hệ điều hành có thể tăng (hoặc giảm) kích thước của tệp trang ít nhất 1 MB.

Sau khi hệ thống khởi động, Trình quản lý phiên (Trình quản lý phiên Windows NT; địa chỉ đĩa - \WINDOWS\system32\smss.exe) khởi tạo các tệp trang hệ thống, sử dụng chức năng NtCreatePagingFile của chính nó để tạo từng tệp. NtCreatePagingFile xác định xem tệp trang đang được khởi tạo có tồn tại hay không và nếu có thì liệu nó có tiêu đề kết xuất hay không. Nếu có tiêu đề thì NtCreatePagingFile sẽ gửi một mã đặc biệt đến Trình quản lý phiên. Sau đó, Trình quản lý phiên sẽ bắt đầu quy trình Winlogon (Chương trình đăng nhập Windows NT; địa chỉ đĩa là \WINDOWS\system32\winlogon.exe), quy trình này được thông báo về sự tồn tại của kết xuất lỗi. Winlogon chạy chương trình SaveDump (Chương trình sao chép bộ nhớ Windows NT; địa chỉ đĩa - \WINDOWS\system32\savedump.exe), chương trình này phân tích tiêu đề kết xuất và xác định các hành động tiếp theo trong tình huống khẩn cấp.

Nếu tiêu đề cho biết sự tồn tại của kết xuất, thì SaveDump sẽ sao chép dữ liệu từ tệp trang sang tệp kết xuất sự cố, tên của tệp này được chỉ định bởi tham số REG_EXPAND_SZ của phần DumpFile của Sổ đăng ký. Trong khi SaveDump ghi lại tệp kết xuất, hệ điều hành không sử dụng phần tệp trang chứa kết xuất sự cố. Trong thời gian này, dung lượng bộ nhớ ảo khả dụng cho hệ thống và ứng dụng sẽ giảm theo kích thước kết xuất (và các thông báo có thể xuất hiện trên màn hình cho biết bộ nhớ ảo sắp hết). Sau đó, SaveDump sẽ thông báo cho trình quản lý bộ nhớ rằng kết xuất đã hoàn tất việc lưu và nó sẽ giải phóng một phần của tệp trang trong đó kết xuất được lưu trữ để sử dụng chung.

Sau khi lưu tệp kết xuất, chương trình SaveDump ghi lại việc tạo kết xuất sự cố trong nhật ký sự kiện Hệ thống, ví dụ: “Máy tính đã được khởi động lại sau một lỗi nghiêm trọng: 0x100000d1 (0xc84d90a6, 0x00000010, 0x00000000, 0xc84d90a6). Bản sao bộ nhớ đã lưu: C:\WINDOWS\Minidump\Mini060309-01.dmp".

Nếu tùy chọn Gửi cảnh báo quản trị được bật, SaveDump sẽ gửi cảnh báo tới quản trị viên.

Các loại bãi rác

  • Kết xuất bộ nhớ đầy đủ ghi toàn bộ nội dung của bộ nhớ hệ thống khi xảy ra lỗi nghiêm trọng. Đối với tùy chọn này, bạn phải có tệp hoán trang trên ổ đĩa khởi động, kích thước của tệp này bằng dung lượng của tất cả RAM vật lý cộng với 1MB. Theo mặc định, kết xuất bộ nhớ hoàn chỉnh được ghi vào tệp %SystemRoot%\Memory.dmp. Khi một lỗi mới xảy ra và một tệp kết xuất bộ nhớ đầy đủ (hoặc kết xuất bộ nhớ kernel) mới được tạo, tệp trước đó sẽ được thay thế (ghi đè). Tùy chọn Kết xuất toàn bộ bộ nhớ không khả dụng trên PC có hệ điều hành 32 bit và RAM 2 gigabyte trở lên.

Khi xảy ra lỗi mới và tệp kết xuất bộ nhớ đầy đủ mới được tạo, tệp trước đó sẽ được thay thế.

  • Kết xuất bộ nhớ hạt nhân chỉ ghi bộ nhớ kernel, giúp quá trình ghi dữ liệu vào log khi hệ thống dừng đột ngột diễn ra nhanh hơn. Tùy thuộc vào dung lượng bộ nhớ vật lý của PC, trong trường hợp này, tệp hoán trang yêu cầu từ 50 đến 800 MB hoặc một phần ba bộ nhớ vật lý của máy tính trên ổ đĩa khởi động. Theo mặc định, kết xuất bộ nhớ kernel được ghi vào tệp %SystemRoot%\Memory.dmp.

Kết xuất này không bao gồm bộ nhớ chưa được phân bổ hoặc bộ nhớ được phân bổ cho các chương trình ở chế độ người dùng. Nó chỉ bao gồm bộ nhớ được phân bổ cho nhân và lớp phụ thuộc phần cứng (HAL) trong Windows 2000 và các phiên bản mới hơn của hệ thống, cũng như bộ nhớ được phân bổ cho trình điều khiển chế độ nhân và các chương trình chế độ nhân khác. Trong hầu hết các trường hợp, bãi chứa như vậy là lựa chọn thích hợp nhất. Nó chiếm ít dung lượng hơn nhiều so với kết xuất bộ nhớ đầy, đồng thời chỉ loại trừ những vùng bộ nhớ có nhiều khả năng không liên quan đến lỗi.
Khi xảy ra lỗi mới và tệp kết xuất bộ nhớ kernel mới được tạo, tệp trước đó sẽ được thay thế.

  • Kết xuất bộ nhớ nhỏ ghi lại lượng thông tin hữu ích nhỏ nhất cần thiết để xác định nguyên nhân của vấn đề. Để tạo một kết xuất bộ nhớ nhỏ, kích thước tệp trang tối thiểu phải là 2 MB trên ổ đĩa khởi động.

Tệp kết xuất bộ nhớ nhỏ chứa thông tin sau:

  • thông báo lỗi nghiêm trọng, các thông số của nó và dữ liệu khác;
  • danh sách các trình điều khiển đã tải;
  • bối cảnh bộ xử lý (PRCB) nơi xảy ra lỗi;
  • thông tin quy trình và bối cảnh kernel (EPROCESS) cho quy trình gây ra lỗi;
  • xử lý thông tin và bối cảnh kernel (ETHREAD) cho luồng gây ra lỗi;
  • Ngăn xếp cuộc gọi chế độ kernel cho luồng gây ra lỗi.

Tệp kết xuất bộ nhớ nhỏ được sử dụng khi dung lượng đĩa cứng bị hạn chế. Tuy nhiên, do thông tin chứa trong đó bị hạn chế nên việc phân tích tệp này không phải lúc nào cũng phát hiện được các lỗi không trực tiếp do luồng đang chạy gây ra khi xảy ra lỗi.

Khi xảy ra lỗi tiếp theo và tệp kết xuất bộ nhớ nhỏ thứ hai được tạo, tệp trước đó sẽ được lưu. Mỗi tập tin bổ sung được đặt một tên duy nhất. Ngày được mã hóa trong tên tập tin. Ví dụ: Mini051509-01.dmp là tệp kết xuất bộ nhớ đầu tiên được tạo vào ngày 15 tháng 5 năm 2009. Danh sách tất cả các tệp kết xuất bộ nhớ nhỏ được lưu trữ trong thư mục %SystemRoot%\Minidump.

Hệ điều hành Windows XP chắc chắn đáng tin cậy hơn nhiều so với các phiên bản trước, nhờ nỗ lực của cả các nhà phát triển Microsoft, nhà phát triển trình điều khiển phần cứng và nhà phát triển phần mềm ứng dụng. Tuy nhiên, các tình huống khẩn cấp - tất cả các loại lỗi và sự cố hệ thống - là không thể tránh khỏi và liệu người dùng PC có kiến ​​thức và kỹ năng để loại bỏ chúng hay không phụ thuộc vào việc anh ta có phải dành vài phút để khắc phục sự cố hay không (ví dụ: cập nhật/gỡ lỗi trình điều khiển). hoặc cài đặt lại một ứng dụng). chương trình gây ra sự cố hệ thống) - hoặc vài giờ để cài đặt lại/cấu hình hệ điều hành và phần mềm ứng dụng (điều này không đảm bảo sẽ không xảy ra lỗi và sự cố trong tương lai!).

Nhiều quản trị viên hệ thống vẫn bỏ qua việc phân tích các kết xuất lỗi của Windows vì tin rằng làm việc với chúng là quá khó. Điều đó khó nhưng vẫn có thể thực hiện được: ngay cả khi, chẳng hạn, ngay cả khi việc phân tích một trong số mười kết xuất thành công, thì những nỗ lực dành cho việc nắm vững các kỹ thuật đơn giản nhất để phân tích các kết xuất lỗi sẽ không vô ích!..

Tôi sẽ đưa ra các ví dụ từ quá trình thực hành “sysadmin” của mình.

Trên mạng cục bộ, không có lý do rõ ràng (“phần cứng ổn định, đảm bảo không có vi-rút, người dùng có “bàn tay bình thường”), một số máy trạm có Windows XP SP1/SP2 “on board” đã ngừng hoạt động. Không thể khởi động máy tính ở chế độ bình thường - nó chuyển sang "Lời chào" - và phải khởi động lại mãi mãi. Đồng thời, PC khởi động vào Chế độ an toàn.

Nghiên cứu các kết xuất bộ nhớ giúp xác định được nguyên nhân của sự cố: thủ phạm hóa ra là Kaspersky Anti-Virus, chính xác hơn là cơ sở dữ liệu chống vi-rút mới (chính xác hơn là hai mô-đun cơ sở dữ liệu - base372c.avc, base032c.avc) .

...Có một trường hợp khác như vậy. Trên PC cục bộ chạy Windows XP SP3, quá trình khởi động lại đã xảy ra khi cố mở tệp video ở định dạng .avi và .mpeg. Nghiên cứu kết xuất bộ nhớ cho phép chúng tôi xác định nguyên nhân của sự cố - tệp nv4_disp.dll của trình điều khiển card màn hình NVIDIA GeForce 6600 Sau khi cập nhật trình điều khiển, sự cố đã được loại bỏ. Nhìn chung, trình điều khiển nv4_disp.dll là một trong những trình điều khiển không ổn định nhất, thường dẫn đến BSOD.

Trong cả hai trường hợp này, việc nghiên cứu kết xuất bộ nhớ sự cố giúp giảm thời gian chẩn đoán và loại bỏ sự cố ở mức tối thiểu (vài phút!).

Phân tích kết xuất bộ nhớ

Có nhiều chương trình để phân tích kết xuất bộ nhớ bị lỗi, ví dụ như DumpChk, Kanalyze, WinDbg.

Hãy xem xét việc phân tích các kết xuất bộ nhớ bị lỗi bằng chương trình WinDbg (một phần của Công cụ gỡ lỗi dành cho Windows).

Cài đặt công cụ gỡ lỗi

  • truy cập trang Web của Tập đoàn Microsoft http://www.microsoft.com/whdc/devtools/debugging/default.mspx;
  • tải xuống Công cụ gỡ lỗi cho Windows, ví dụ: đối với phiên bản Windows 32 bit, việc này có thể được thực hiện trên trang Tải xuống công cụ gỡ lỗi cho Windows;
  • sau khi tải xuống, hãy chạy tệp cài đặt;
  • trong cửa sổ Công cụ gỡ lỗi cho Trình hướng dẫn cài đặt Windows, nhấp vào Tiếp theo;
  • trong cửa sổ có thỏa thuận cấp phép, chọn nút Tôi đồng ý -> Tiếp theo;
  • trong cửa sổ tiếp theo, chọn kiểu cài đặt (theo mặc định, các công cụ gỡ lỗi được cài đặt trong thư mục \Program Files\Debugging Tools for Windows) -> Tiếp theo -> Cài đặt -> Kết thúc;
  • Để diễn giải các tệp kết xuất bộ nhớ, bạn cũng phải tải xuống Gói Biểu tượng cho phiên bản Windows của mình - đi tới trang Tải xuống Gói Biểu tượng Windows;
  • chọn phiên bản Windows của bạn, tải xuống và chạy tệp cài đặt Gói Biểu tượng;
  • trong cửa sổ có thỏa thuận cấp phép, nhấp vào Có;
  • trong cửa sổ tiếp theo, chọn thư mục cài đặt (mặc định là \WINDOWS\Symbols) -> OK -> Yes;
  • Trong cửa sổ Biểu tượng Microsoft Windows có thông báo “Cài đặt hoàn tất”, hãy nhấp vào OK.

Sử dụng WinDbg để phân tích các kết xuất sự cố

  • chạy WinDbg (được cài đặt trong thư mục \Program Files\Debugging Tools cho Windows theo mặc định);
  • chọn menu Tệp -> Đường dẫn tệp biểu tượng…;
  • trong cửa sổ Đường dẫn tìm kiếm biểu tượng, nhấp vào nút Duyệt…;
  • trong cửa sổ Duyệt thư mục, chỉ định vị trí của thư mục Biểu tượng (theo mặc định – \WINDOWS\Symbols) -> OK -> OK;
  • chọn menu Tệp -> Mở Crash Dump… (hoặc nhấn Ctrl + D);
  • trong cửa sổ Open Crash Dump, chỉ định vị trí của Tệp Crash Dump (*.dmp) -> Open;
  • trong cửa sổ Workspace có câu hỏi “Save information for Workspace?”, đánh dấu vào ô Don't Ask Again -> No;
  • Cửa sổ Command Dump sẽ mở trong cửa sổ WinDbg<путь_и_имя_файла_дампа>với phân tích bãi thải;
  • xem lại phân tích kết xuất bộ nhớ;
  • trong phần “Phân tích kiểm tra lỗi”, nguyên nhân có thể gây ra sự cố sẽ được chỉ ra, ví dụ: “Có thể do: smwdm.sys (smwdm+454d5)”;
  • để xem thông tin chi tiết, hãy nhấp vào liên kết “!analyze -v” trong dòng “Sử dụng !analyze -v để nhận thông tin gỡ lỗi chi tiết”;
  • đóng WinDbg;
  • Sử dụng thông tin thu được để loại bỏ nguyên nhân của vấn đề.

Ví dụ: trong ảnh chụp màn hình sau, nguyên nhân gây ra sự cố là do tệp nv4_disp.dll của trình điều khiển card màn hình.

Đôi khi ngay cả những điều chỉnh nhỏ nhất trong việc tối ưu hóa hệ thống Windows XP cũng có thể mang lại tác dụng có lợi cho hoạt động của toàn bộ hệ thống. Sự tối ưu hóa này đặc biệt có giá trị sau khi bạn lần đầu tiên nhận được “dấu đen” - BSOD (Màn hình xanh chết chóc). Điều gì xảy ra khi màn hình xanh chết chóc xuất hiện? Một số “từ điên rồ” kỳ lạ đang chạy trên màn hình, ngay cả những người dùng có kinh nghiệm cũng không hiểu được ý nghĩa của chúng. Tại thời điểm này, một “DUMP NHỚ” được tạo ra, một mẹo rất hay để tối ưu hóa Windows XP.

Kết xuất bộ nhớ là gì và làm thế nào để đóng nó?

Kết xuất bộ nhớ là bản ghi RAM của PC vào ổ cứng. Nội dung của tệp này có thể chỉ được một tầng lớp người dùng đặc biệt - các lập trình viên quan tâm. Nhưng đối với những “người giả”, một tập tin như vậy hoàn toàn không được quan tâm, điều đó có nghĩa là nó đơn giản là không cần thiết. Do đó, chức năng kết xuất bộ nhớ có thể bị vô hiệu hóa một cách rõ ràng. Nhân tiện, bằng cách này, bạn sẽ giải phóng ổ cứng của mình khỏi các bản ghi không cần thiết và giảm thời gian tải. Hãy chuyển sang thuật toán đóng kết xuất bộ nhớ. Vì thế!

Chúng tôi thực hiện các bước sau:

  1. Nhấp vào nút “Bắt đầu” (không phải nút khởi động máy tính mà là nút ảo nằm ở phía dưới bên trái màn hình);
  2. Nhấp chuột PHẢI vào “Máy tính của tôi” và chọn “Thuộc tính” trong cửa sổ mở ra;
  3. Tab “Thuộc tính hệ thống” sẽ mở ra, nơi chúng tôi quan tâm đến phần “Nâng cao”;
  4. trong phần này, chọn mục dưới cùng “Tải xuống và khôi phục” và nhấp vào từ “Tùy chọn”;
  5. Một phần có tên “Tải xuống và khôi phục” sẽ mở ra. Chúng tôi xem và chọn mục “Ghi lại thông tin gỡ lỗi” (nó được đánh dấu màu xanh lam) và chọn “Vắng mặt” từ danh sách thả xuống;
  6. Bấm vào “OK”.

Ngắn gọn và rõ ràng. Ngay cả khi bạn chưa hiểu hết mọi thứ thì điều đó cũng không thành vấn đề: sự hiểu biết sẽ đến theo thời gian và kinh nghiệm. Và hôm nay bạn đã thực hiện bước nhỏ đầu tiên trong việc nắm vững các nguyên tắc sâu hơn của hệ thống máy tính. Và hãy để bài học này có vẻ quá đơn giản đối với một số người, nhưng tất cả những người hiện coi mình là người dùng ít nhiều nâng cao đều bắt đầu lại từ đầu.