Steam API调试

时间:2021-10-21 02:07:25

颠末这些年,Steam 已经生长为一款大型应用措施,供给多款调试用单独模块及要领。本文将尽量向您泛起这些模块与要领,辅佐您丰裕操作 Steam 与 Steamworks,减少懊恼。

Steam 会自动将数个调试功效输出至日志文件夹,其他功效需通过  或 启用。

 可让 Steamworks 应用措施注册一种函数,从而在堕落时使得 Steamworks API 将开发人员可读的错误信息发送至应用措施。大大都的 Stem API 都使用该函数,因此请记得将此连接,便利在堕落时进行查抄。

Steam 命令行参数

Steam 使用命令行参数来供给开发者详情。

-console – 启用 Steam 控制台。控制台供给特别调试信息,您也可以在控制台中使用。在浏览器地点栏输入 steam://open/console,或通过 Windows 执行对话框均可启用 Steam 控制台。

-debug_steamapi – 启用 Steamworks API 调试。如您想使用 ,则必需使用此命令! 

-lognetapi – 将所有 P2P 网络信息写入 log/netapi_log.txt。

-log_voice – 将语音聊天数据写入 logs/voice_log.txt 文件。

-installer_test – 安置零售版游戏时,所有文件改发送至 install_validate/ 文件夹,而非 Steam 缓存。

Steam 控制台命令

除特别输堕落误呈报或错误日志,Steam 控制台还可用于发送令命至 Steam 客户端或处事器。以下为调试时可派上用场的一些命令:

find <string> – 找到其他好用的命令。

set_spew_level – 让您在 Steam 控制台与日志文件中设定更高级另外输出,如“ set_spew_level 4 4”将供给最详细的日志记录,在故障诊断时极为有用。

app_info_print < AppID> – 显示 Steam 处事器为游戏供给的所有信息。

enable/disable_license < PackageID> – 可测试应用措施的所有权,凡是为 DLC的所有权。

testappcloudpaths < AppID> – 可在允许所有顾客启动自动云前测试自动云配置。此命令一次只能用于单一 AppID,且须在所有正在接受测试的客户端中执行。

log_callbacks <first callbackID> <last callbackID> – 将所有回调纪录入控制台。

log_matchmaking_callbacks <0|1> – 启用或停用匹配回调记录。

log_ipc <counts|verbose> <filter> – 请见 

Steamworks API 记录

(在 Steam 控制台输入)log_ipc 命令会将对 Steam 客户端内部接口所进行的全部 IPC 挪用进行转储。该命令使用筛选器参数,可为您想监控的接口或进程名称。请注意所供给的名称不总是与 ISteam*版 1:1 匹配,但凡是非常附近。可选择指定“counts”或“verbose”,默认为“counts”。

默认畅凡是如下所示:

00000009 my_exe_name.exe:05 > IClientUser::GetSteamID( ) = [U:2:172006], 00000009 my_exe_name.exe:05 > IClientUser::BLoggedOn( ) = 1, 00000009 my_exe_name.exe:05 > IClientNetworking::IsP2PPacketAvailable( 0,,) = 0,0, 00000009 my_exe_name.exe:05 > IClientNetworking::IsP2PPacketAvailable( 1,) = 0,0, 00000009 my_exe_name.exe:05 > IClientFriends::GetPersonaName( ) = "user", 00000009 my_exe_name.exe:05 > IClientUser::GetSteamID( ) = [U:2:123456],

监控特定接口

如您想跟踪特定问题,请在 log_ipc 中筛选特定接口。

如:log_ipc IClientUser

输出示例:

00000009 my_exe_name.exe:05 > IClientUser::GetSteamID( ) = [U:2:172006], 00000009 my_exe_name.exe:05 > IClientUser::BLoggedOn( ) = 1, 00000009 my_exe_name.exe:05 > IClientUser::GetSteamID( ) = [U:2:123456],

IPC呈报

在 Steam 客户端中,通过log_ipc可取得汇总呈报。

您可以在汇总呈报中快速阅览 IPC 挪用的摘要。下方示例显示挪用 GetSteamID/BLoggedOn/GetPersonaNam过于频繁。呈报会于停用或从头开始记录时输出,因此如想获取呈报,请凭据以下法式进行:

输入“log_ipc my_exe_name.exe“。

期待,或与游戏互动,以测验考试重现问题,等等

输入“log_ipc 0“。


输出示例:

Calls over the last 42144 milliseconds: Process MethodCalls First Last -------------------- ---------------------------------------- ---------- ---------- ------- my_exe_name.exe IClientNetworking::IsP2PPacketAvailable 15272 9 42145 my_exe_name.exe IClientUser::GetSteamID 42652 9 42145 my_exe_name.exe IClientUser::BLoggedOn42652 9 42145 my_exe_name.exe IClientFriends::GetPersonaName38209 42145 my_exe_name.exe IClientUser::RequestEncryptedAppTicket2 21032441 my_exe_name.exe IClientUtils::GetAPICallResult2 21252441 my_exe_name.exe IClientUser::GetEncryptedAppTicket1 21362136

IPC 日志输出

完整的 IPC 日志将输出至您的 Steam 安置目录:logs\\ipc_SteamClient.log。

Steam API调试

标签:

原文地点:https://www.cnblogs.com/empist/p/8905666.html