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

在 Microsoft 应用商店分析 API 中使用此方法,获取应用中错误的堆栈跟踪。 此方法只能下载过去 30 天内发生的应用错误的堆栈跟踪。 在合作伙伴中心 运行状况报告故障 部分中,还可以使用堆栈跟踪。

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

先决条件

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

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

请求

请求语法

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

请求标头

标题 类型 DESCRIPTION
授权 字符串 必填。 Azure AD 访问令牌,形式为Bearer<token>。

请求参数

参数 类型 DESCRIPTION 必选
应用ID 字符串 要为其获取堆栈跟踪的应用的应用商店 ID。 商店 ID 可在合作伙伴中心的 应用标识页 上找到。 应用商店 ID 示例为 9WZDNCRFJ3Q8。 是的
出租车编号 字符串 与要检索堆栈跟踪的错误关联的 CAB 文件的唯一 ID。 若要获取此 ID,请使用 获取应用中某个错误的详细信息方法 来检索应用中特定错误的详细信息,并在该方法的响应正文中使用 cabId 值。 是的

 

请求示例

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

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

响应

响应体

价值 类型 DESCRIPTION
价值 数组 包含多个对象的数组,每个对象中包含一帧堆栈跟踪数据。 有关每个对象中的数据的详细信息,请参阅下面的 堆栈跟踪值 部分。
@nextLink 字符串 如果有其他数据页,此字符串包含可用于请求下一页数据的 URI。 例如,如果请求的 顶部 参数设置为 10,但查询的错误行数超过 10 行,则返回此值。
总计数 整数 查询的数据结果中的行总数。

堆栈跟踪值

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

价值 类型 DESCRIPTION
水平 字符串 此元素在调用堆栈中表示的帧编号。
图像 字符串 包含此堆栈帧中调用的函数的可执行文件或库映像的名称。
功能 字符串 在此堆栈帧中调用的函数的名称。 仅当应用包含可执行文件或库的符号时,此选项才可用。
抵消 字符串 当前指令相对于函数开头的字节偏移量。

注释

此方法只能下载过去 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
}