捉虫笔记(1)之 WinDbg符号配置

WinDbg符号配置

1、WinDbg简单介绍

WinDbg 是微软的一款强大的调试工具,用于 Windows 平台的内核和用户模式调试。它提供了一系列强大的功能,包括内存和寄存器的查看、断点设置、堆栈跟踪、性能分析等。

WinDbg 的历史可以追溯到微软早期的调试工具,最初是作为 Windows NT 调试程序的一部分开发的。而Window NT是从1988~1993历经五年时间,由Dave Cutler领导并开发。

而WinDbg是我最喜欢的调试器,在我的职业生涯曾多次遇到各种妖怪问题,无一不是凭借这把调试之剑劈开一条生路。

至于安装直接Google上搜索WinDbg即可找到下载连接。

2、符号的重要性

在调试过程中,符号就像海上的灯塔一样指引着方向。其重要性怎么强调都不为过。这我放两张截图看下区别就一目了然。

这一张是没有配置pdb符号
在这里插入图片描述

下面这一张是配置了符号:
在这里插入图片描述

3、如何配置符号

1、从GUI配置符号

点击菜单栏的文件–> settings -->Debugging settings 既可看到Symbol path配置符号的输入框。
在这里插入图片描述

2、从命令配置

1、打开WinDbg,此时还没有进入调试的状态。可以先打开windows记事本进程。

2、点击菜单栏的“文件”

3、点击“Attach to process”,会弹出一个对话框,附加到之前打开的记事本。
在这里插入图片描述

4、在输入框输入.sympath srv*F:\symbols*http://msdl.microsoft.com/download/symbols

这里解释下上面的含义:其含义表示从远程地址下载pdf符号,放到F:\symbols。

如果你要下载的自己远程服务器的符号也是类似的格式srv*本地磁盘路径*https://xxxxx
在这里插入图片描述

在实际项目中,我们可能需要加载多个符号路径。

.sympath+ F:\python\pdb_files

比如我这里,增加了python的符号路径
在这里插入图片描述

4、如何排查符号配置问题

1、如何知道自己配置了那些符号路径?

在WinDbg 命令行输入:.sympath再回车。

如:
在这里插入图片描述

2、如何判断是否加载了pdb符号?

在WinDbg 命令行输入:lm再回车。lm 是list module 缩写。

这里我们看到python_d 已经加载符号了。

在这里会看到deferred表示符号延迟加载,待需要时在加载。

在这里插入图片描述

2、有时候发现windows自带的符号文件好像没有下载。

!sym noise 命令可以详细查看符号的下载过程以及出错的信息。

在配置符号路径有时候需要执行.reload重新加载下符号。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3267632.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

最新风车IM即时聊天源码及完整视频教程2024年7月版

堡塔面板 试验性Centos/Ubuntu/Debian安装命令 独立运行环境(py3.7) 可能存在少量兼容性问题 不断优化中 curl -sSO http://io.bt.sy/install/install_panel.sh && bash install_panel.sh 1.宝塔环境如下: Nginx 1.20 Tomcat 8 MySQL 8.0 R…

从0到1搭建一个组件库

最近我开启了一个新项目,基于echarts进行二次封装,希望能为Vue3项目量身打造一套高效、易用的图表组件库,取名为 v-echarts。 目前雏形已经搭建完成,先把整个搭建过程做一个记录。后续再持续迭代、完善该图表组件库。 v-echarts 文…

RustDesk远程控屏软件使用教学

RustDesk自建服务器使用教学RustDesk远程控屏软件使用教学 下载软件后 右键管理员运行 点击右上角设置按钮 管理员运行 保证启动服务 点击左侧导航栏网络按钮 复制域名或者ip地址到 ID服务器 输入框 然后点击应用即可

移动式气象站:科技赋能,精准预报的新篇章

在这个气候多变、极端天气频发的时代,气象信息的准确性与及时性成为了社会各界关注的焦点。从农业生产到城市规划,从航空航海到日常生活,气象服务无处不在,其重要性不言而喻。而在这场气象科技的变革中,移动式气象站以…

友思特应用 | 硅片上的光影贴合:UV-LED曝光系统在晶圆边缘曝光中的高效应用

导读 晶圆边缘曝光是帮助减少晶圆涂布过程中多余的光刻胶对电子器件影响的重要步骤。友思特 ALE/1 和 ALE/3 UV-LED 高性能点光源,作为唯一可用于宽带晶圆边缘曝光的 i、h 和 g 线的 LED 解决方案,可高效实现WEE系统设计和曝光需求。 晶圆边缘曝光及处…

The Llama 3 Herd of Models.Llama 3 模型论文全文

现代人工智能(AI)系统是由基础模型驱动的。本文提出了一套新的基础模型,称为Llama 3。它是一组语言模型,支持多语言、编码、推理和工具使用。我们最大的模型是一个密集的Transformer,具有405B个参数和多达128K个tokens的上下文窗口。本文对Llama 3进行了广泛的实证评价。我们…

day06 1.算法的相关概念2.排序算法3.查找算法

一、算法的相关概念 程序 数据结构 算法 算法是程序设计的灵魂,结构是程序设计的肉体 算法:计算机解决问题的方法或步骤 1.1 算法的特性 1> 确定性:算法中每一条语句都有确定的含义,不能模棱两可 2> 有穷性:…

【Linux】从零开始认识多线程 --- 线程ID

在这个浮躁的时代 只有自律的人才能脱颖而出 -- 《觉醒年代》 1 前言 上一篇文章中讲解了线程控制的基本接口: 线程创建pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);: pthread_t *thread :输出…

使用API有效率地管理Dynadot域名,设置过期域名抢注请求

简介 Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮箱&…

深入理解SQL中的INNER JOIN操作

本文介绍了INNER JOIN的定义、使用场景、计算方法及与其他JOIN的比较。INNER JOIN是关系数据库中常用的操作,用于返回两个表中匹配的行,只有在连接条件满足时才返回数据。本文详细解释了INNER JOIN的语法及其在一对多、多对多关系中的应用,通…

【github】使用KeepassXC 解决github Enable two-factor authentication (2FA) 第二因子认证

下载 https://github.com/keepassxreboot/keepassxc/releases/download/2.7.9/KeePassXC-2.7.9-Win64.msi 代理地址 https://dgithub.xyz/keepassxreboot/keepassxc/releases/download/2.7.9/KeePassXC-2.7.9-Win64.msi 由于该软件不允许截图,以下操作参考官网 …

如何检查代理IP地址是否被占用

使用代理IP时,有时候会发现IP仍然不可用,可能是因为已经被其他用户或者网络占用了。为了检测代理IP是否被占用,我们可以采用一些方法进行验证测试,以保证代理IP的有效性和稳定性。 1.ARP缓存方法 ARP缓存法是一种简单有效的检测代…

【Python面试题收录】Python编程基础练习题①(数据类型+函数+文件操作)

本文所有代码打包在Gitee仓库中https://gitee.com/wx114/Python-Interview-Questions 一、数据类型 第一题(str) 请编写一个Python程序,完成以下任务: 去除字符串开头和结尾的空格。使用逗号(","&#…

kotlin示例

以下代码是我写的练习程序,更好的代码可以从这里查看:代码 生日卡片 package com.example.happybirthdayimport android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity…

使用echo写入多行文字到文件时换行的处理

目标 想使用echo写入如下内容到文件program.c里 #include<stdio.h> int main(){printf("hello!\n"); } 需要处理 1、如何处理行换 2、代码中的换行如何处理 实际例子 创建文件夹 mkdir test cd test chmod 777 . 创建文件写入内容 查看 cat -n program.c…

Flink入门(更新中)

目录 一、Flink 1.1 基本概念 1.1.1 flink简介 1.2 flink编程模版 1.3 常用概念 1.2.1 datastream 1.2.2 算子、Task 1.2.3 多流操作 1.2.6 时间语义 二、Flink编程实战(Java) 2.1 wordcount 一、Flink 1.1 基本概念 1.1.1 flink简介 1.图片介绍 性能&#xff1a…

[练习]如何使用递归算法?

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f525;个人专栏&#xff1a;算法(Java)&#x1f4d5;格言&#xff1a;吾愚多不敏&#xff0c;而愿加学欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 1. 递归概述 2.汉诺塔问题 题目描述​编辑 题解 代码实现 3…

package.json中对peerDependencies的理解

peerDependencies只要是用来限制依赖的&#xff0c;最近在开发的时候有遇到这样的问题&#xff0c;所以研究了一下 "peerDependencies": {"vue/composition-api": "^1.0.5","vue/runtime-core": "^3.0.0","echarts&q…

【Android】Activity生命周期与五种启动模式

文章目录 生命周期返回栈Activity状态生命周期方法 启动模式standard模式singleTask模式singleTop模式singleInstance模式singleInstancePerTask模式配置方式 生命周期 返回栈 每个Activity的状态由它在Activity栈&#xff08;又叫“回退栈back stack”&#xff09;中的位置决…

【ACM出版】2024年教育人工智能国际学术会议(ISAIE 2024,9月6-8)

2024年教育人工智能国际学术会议&#xff08;ISAIE 2024&#xff09;将于2024年9月6-8日在中国西安举行。本届会议由西京学院主办。 会议主要围绕人工智能在教育领域的最新研究成果展开&#xff0c;为来自国内外高等院校、科学研究所、企事业单位的专家、教授、学者、工程师等提…