获取PDB下载列表 - GetPdbDownloadUrls
函数简介
获取PDB文件下载URL和保存路径列表。
接口名称
GetPdbDownloadUrls
DLL调用
int64_t GetPdbDownloadUrls(int64_t instance)
参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| instance | int64_t | OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成 |
示例
// 获取PDB下载URL列表
const char* pdb_list = GetPdbDownloadUrls(instance);
if (pdb_list != NULL) {
printf("PDB下载列表:\n%s\n", pdb_list);
// 解析URL列表(格式:url1|path1\nurl2|path2\n...)
char* line = strtok((char*)pdb_list, "\n");
while (line != NULL) {
// 分割URL和路径
char* separator = strchr(line, '|');
if (separator != NULL) {
*separator = '\0';
const char* url = line;
const char* path = separator + 1;
printf("URL: %s\n", url);
printf("保存路径: %s\n\n", path);
// 可以使用 HttpDownloadFile 下载PDB文件
// HttpDownloadFile(instance, url, path, NULL, 0);
}
line = strtok(NULL, "\n");
}
// 释放字符串内存
FreeStringPtr(instance, pdb_list);
} else {
printf("获取PDB下载列表失败\n");
}
返回格式说明
返回的字符串格式为:
url1|path1
url2|path2
url3|path3
...
每行包含一个PDB文件的下载URL和保存路径,用 | 分隔。
示例返回值:
https://msdl.microsoft.com/download/symbols/ntdll.pdb/ABC123/ntdll.pdb|C:\Symbols\ntdll.pdb
https://msdl.microsoft.com/download/symbols/kernel32.pdb/DEF456/kernel32.pdb|C:\Symbols\kernel32.pdb
https://msdl.microsoft.com/download/symbols/user32.pdb/GHI789/user32.pdb|C:\Symbols\user32.pdb
返回值
字符串:
PDB文件下载URL和保存路径列表,格式为:url|path,每行一个PDB文件信息,失败返回空字符串
注意:
DLL调用返回字符串指针地址,需要调用 FreeStringPtr 接口释放内存
注意事项
- 返回的字符串格式为:
url|path,每行一个PDB文件信息 - 每行用换行符
\n分隔 - URL和路径用竖线
|分隔 - 使用完毕后必须调用
FreeStringPtr释放返回的字符串内存 - 可以配合
HttpDownloadFile接口批量下载PDB文件 - PDB文件用于符号调试和内核级操作
- 通常需要先调用此接口获取下载列表,再使用
LoadPdb加载PDB文件
