获取应用中的错误的堆栈跟踪
在 Microsoft 应用商店分析 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 | string | 要为其获取堆栈跟踪的应用的应用商店 ID。 存储 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
}