Tổng quan
Làm theo hướng dẫn bên dưới để biết cách debug file binary Windows của trò chơi (chạy thông qua Proton) trên bộ kit phát triển Steam Deck. Khi tải vào bộ kit phát triển, bạn sẽ cần gộp runtime debug của Windows với trò chơi, Visual Studio & công cụ debug từ xa chạy trên môi trường phát triển Windows.
Tính năng này vẫn đang được phát triển. Hãy để lại góp ý / vấn đề bạn gặp phải trong
diễn đàn nhà phát triển Steam Deck.
LƯU Ý: Tính năng debug từ xa chỉ được hỗ trợ trên bản phát hành Proton - Experimental.
Thiết lập
Hãy xem qua
Cách nạp và chạy trò chơi trên Steam Deck để tải lên và chạy trò chơi trên bộ kit phát triển. Nhớ gộp runtime debug của Windows (xem chi tiết bên dưới).
Gộp runtime debug Windows:
Runtime debug Windows không đi kèm với Proton. Bạn cần phải gộp các DLL runtime debug với bản build. Truy cập
https://docs.microsoft.com/en-us/cpp/windows/preparing-a-test-machine-to-run-a-debug-executable để biết thêm chi tiết. Đối với Visual Studio, dùng một thiết lập triển khai debug là được. Mục properties của dự án có một lựa chọn nâng cao để 'Copy C++ Runtime to OutDir' có thể hữu ích cho các dự án C++.
Các công cụ debug từ xa của Visual Studio trong Proton:
Các công cụ debug từ xa của Visual Studio không đi kèm với Proton. Khi tải một sản phẩm với nút Steam Play được chọn, công cụ kit phát triển sẽ chép các công cụ debug từ xa trên máy chủ phát triển Windows sang hệ thống kit phát triển.
Hiện tại, bộ kit phát triển sẽ tìm kiếm các công cụ debug đã cài đặt của Visual Studio 2019 và Visual Studio 2017. Để có sẵn công cụ debug từ xa, khi cài đặt Visual Studio, hãy đảm bảo bao gồm một Workload phát triển như "Desktop development with C++".
Sử dụng
Các ví dụ Vulkan
Dự án
các ví dụ Vulkan là điểm bắt đầu hợp lý để làm quen với việc debug từ xa các trò chơi được tải lên bộ kit phát triển Steam Deck.
Sao chép dự án và đổi thư mục hiện tại:
git clone --recursive https://gitlab.steamos.cloud/jupiter/vulkan-examples.git
cd vulkan-examples
Dự án chứa vài mẫu Vulkan nhỏ khác nhau được đặt tại thư mục ví dụ. Trong tài liệu này, chúng ta sẽ chỉ dùng
imgui
. Tạo và dựng dự án:
cmake -G "Visual Studio 16 2019" -S . -Bbuild/windows
cmake --build build/windows --config Debug --target imgui
Lưu ý: bản build Cmake tải thêm các tư liệu bằng cách chạy một bảng mã nhỏ, bạn sẽ cần Python trên máy chủ build.
Điều này sẽ tạo một thư mục
build/windows/bin/Debug
có chứa file thực thi
imgui
, các DLL debug Windows được yêu cầu và tư liệu dữ liệu.
Lúc này, bạn có thể tải lên thư mục debug vừa tạo.
Đừng quên chọn "This title requires Steam Play", vì đây không phải build native dành cho Linux, cũng như "Start Visual Studio C++ debugger service on launch" để bật bộ debug từ xa.
Nếu kết nối khi trò chơi đang chạy vẫn chưa đủ, và muốn debug quá trình khởi động và bắt đầu sản phẩm, vui lòng "Wait for a debug client to attach" và xem mục "hỗ trợ gán sớm" trong tài liệu này.
Một khi việc chuyển giao hoàn tất, ví dụ nếu chọn tên
vulkan_examples_debug
, bạn sẽ tìm thấy một trò chơi được gọi là
Devkit Game: vulkan_examples_debug
trong cùng thư viện trò chơi Steam.
Khi khởi động trò chơi, một máy chủ msvsmon dành để gỡ lỗi từ xa cũng sẽ tự động khởi chạy.
Giờ đây bạn có thể đính kèm một bộ debug vào trò chơi đang chạy.
Trong Visual Studio, nhấn
Ctrl+Alt+P
để mở
Debug > Attach to Process. Trong mục tiêu kết nối, thiết lập IP và cổng của máy chủ msvsmon, rồi chọn quy trình
imgui.exe
.
Để tìm thấy hướng dẫn từng bước một, bạn có thể theo dõi trang
tài liệu debug Microsoft.
Các ví dụ Unreal Engine 4
Tạo một tài khoản Epic Games nếu bạn chưa có, rồi sau đó
tải và cài đặt Unreal Engine 4.
Chúng ta sẽ dùng một trong các mẫu dự án do Unreal Editor cung cấp để làm ví dụ. Tạo một dự án mới và chọn mẫu "Puzzle".
Chọn tên dự án và một nơi chứa
Đi đến Edit->Project settings->Packaging và chọn "Debug" hoặc "DebugGame" cho thiết lập bản build. Bạn có thể tìm thêm thông tin tại trang
tư liệu chính thức. Nếu chọn "Include Debug Files", các file debug sẽ được đính kèm trong gói trò chơi.
Nếu bạn không thể kết xuất một bản dựng dành cho Linux, ví dụ vì trò chơi của bạn có những ứng dụng phụ thuộc bên ngoài không hỗ trợ Linux, bạn có thể dùng một bản build Windows bằng cách File->Package Project->Windows (64-bit). Điều này sẽ tạo một bản build trong một thư mục mới có tên"WindowsNoEditor".
Tải trò chơi đã được kết xuất của bạn bằng
SteamOS Devkit Client
.
Trong thư viện Steam, bạn sẽ thấy một mục có tên giống như sau
Devkit Game: puzzle
. Khi khởi động trò chơi, một máy chủ msvsmon dành để debug từ xa cũng sẽ tự động khởi chạy.
Ở bước cuối cùng, giờ bạn có thể gắn một bộ debug vào trò chơi đang chạy.
Trong Visual Studio, nhấn
Ctrl+Alt+P
để mở
Debug > Attach to Process. Trong mục tiêu kết nối, thiết lập IP và cổng của máy chủ msvsmon, rồi chọn quy trình
puzzle.exe
.
Để tìm thấy hướng dẫn từng bước một, bạn có thể theo dõi trang
tài liệu debug Microsoft.
Quá trình debug từ xa ứng dụng lúc khởi động: hỗ trợ "gán sớm":
Tính năng debug từ xa có thể thiết lập để chờ người dùng đính vào trước khi khởi động. Điều này sẽ cho phép bạn đặt breakpoint trong WinMain hoặc các đoạn mã khởi động khác.
Trước tiên bạn phải cài đặt một extension của Microsoft trong Visual Studio từ máy chủ phát triển của bạn:
https://marketplace.visualstudio.com/items?itemName=vsdbgplat.MicrosoftChildProcessDebuggingPowerToolSau khi cài đặt xong extension, bật child process debugging (gỡ lỗi ứng dụng con) theo như tài liệu đã nêu (Debug > Other Debug Targets > Child Process Debugging Settings)
Kiểm tra "Wait for a debug client to attach" trong công cụ devkit của bạn, và tải lên sản phẩm.
Khởi động trò chơi như bình thường.
Khi gán tới ứng dụng từ xa, đính vào
steam.exe
- sau khi gán, Proton sẽ ngay lập tức khởi động trò chơi của bạn dưới dạng process con, và extension sẽ bắt đầu và debug trò chơi ngay từ lúc khởi động với breakpoint đã kích hoạt.