获取应用中的错误的堆栈跟踪

使用 Microsoft Store 分析 API 中的此方法,可获取应用中的错误堆栈跟踪。 此方法仅可以下载过去 30 天内发生的应用错误的堆栈跟踪。 合作伙伴中心的运行状况报告的“故障”部分也提供堆栈跟踪。

在可以使用此方法之前,必须首先使用获取应用中的错误的详细信息方法来检索与想要检索堆栈跟踪的错误相关联的 CAB 文件 ID。

必备条件

若要使用此方法,首先需要执行以下操作:

  • 完成 Microsoft Store 分析 API 的所有先决条件(如果尚未这样做)。
  • 获取 Azure AD 访问令牌,以供在此方法的请求标头中使用。 获取访问令牌后,在它到期前,你有 60 分钟的使用时间。 该令牌到期后,可以获取新的令牌。
  • 获取与想要检索堆栈跟踪的错误相关联的 CAB 文件的 ID。 若要获取此 ID,请使用获取应用中的错误的详细信息方法来检索应用中特定错误的详细信息,并使用该方法的响应正文中的 cabId 值。

请求

请求语法

方法 请求 URI
GET https://manage.devcenter.microsoft.com/v1.0/my/analytics/stacktrace

请求头

标头 类型 说明
授权 字符串 必需。 Azure AD 访问令牌的格式为 Bearertoken<>。

请求参数

参数 类型 说明 必需
applicationId 字符串 要获取堆栈跟踪的应用的应用商店 ID。 Store ID 在合作伙伴中心的应用标识页上提供。 Store ID 示例:9WZDNCRFJ3Q8。
cabId string 获取与想要检索堆栈跟踪的错误相关联的 CAB 文件的唯一 ID。 若要获取此 ID,请使用获取应用中的错误的详细信息方法来检索应用中特定错误的详细信息,并使用该方法的响应正文中的 cabId 值。

 

请求示例

以下示例演示如何使用此方法获取堆栈跟踪。 将 applicationId 值替换为你的应用的 Store ID。

GET https://manage.devcenter.microsoft.com/v1.0/my/analytics/stacktrace?applicationId=9NBLGGGZ5QDR&cabId=1336373323853 HTTP/1.1
Authorization: Bearer <your access token>

响应

响应正文

类型 说明
Value array 一组对象,其中每个包含堆栈跟踪数据的一个帧。 有关每个对象中的数据的详细信息,请参阅以下堆栈跟踪值部分。
@nextLink string 如果存在其他数据页,则此字符串包含一个你可用来请求下一页数据的 URI。 例如,当请求的 top 参数设置为 10,但查询的错误超过 10 行时,就会返回此值。
TotalCount integer 查询的数据结果中的行总数。

堆栈跟踪值

Value 数组中的元素包含以下值。

Value 类型 说明
级别 string 此元素在调用堆栈中表示的帧编号。
image string 可执行文件或库映像的名称,包含在此堆栈帧中调用的函数。
function string 在此堆栈帧中调用的函数名称。 仅当应用包含可执行文件或库的符号时才可用。
offset string 相对于函数开始的当前指令的字节偏移量。

注意

此方法仅可以下载过去 30 天内发生的应用错误的堆栈跟踪。

请求和响应示例

以下代码片段演示了这些请求的一些示例请求和 JSON 响应正文。

示例请求

GET https://manage.devcenter.microsoft.com/v1.0/my/analytics/stacktrace?applicationId=9NBLGGGZ5QDR&cabId=1234567890123456789
HTTP/1.1
Authorization: Bearer <your access token>

示例响应

{
    "Value": [
        {
            "level": "0",
            "image": "Microsoft.Contoso",
            "function": "HANG_QUIESCE",
            "offset": "0x0000000000000000",
            "isBlamedFrame": true
        },
        {
            "level": "1",
            "image": "unknown.dll",
            "function": "[.ecxr]",
            "offset": "0x0000000000000000",
            "isBlamedFrame": false
        },
        {
            "level": "2",
            "image": "ntdll.dll",
            "function": "RtlpHpSegFree",
            "offset": "0x0000000000000000",
            "isBlamedFrame": false
        },
        {
            "level": "3",
            "image": "ntdll.dll",
            "function": "RtlpHpFreeHeap",
            "offset": "0x0000000000000000",
            "isBlamedFrame": false
        },
        {
            "level": "4",
            "image": "ntdll.dll",
            "function": "RtlpFreeHeapInternal",
            "offset": "0x0000000000000000",
            "isBlamedFrame": false
        }
    ],
    "TotalCount": 5
}