问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Visual Studio Debug下的Attach Process是什么原理

发布网友 发布时间:2022-04-23 19:04

我来回答

2个回答

热心网友 时间:2022-04-08 12:48

Windows提供一套公共的API用于调试程序,也就是说你也可以自己写一个调试软件,调用这些API实现跟VS一样的功能。并且现有的软件里,很多调试器都支持attach to process的功能。

在Windows环境下,一个进程要debug另一个进程,在权限足够的情况下,有两种debug方式:

1、启动进程并debug(像一般VC那样);

2、直接attach到一个正在运行的进程上;

第一种模式:

创建进程(CreateProcess)时,在dwCreationFlags里加上DEBUG_PROCESS标志位

参见:

CreateProcess function (Windows)

Process Creation Flags (Windows)

进程创建以后就会停下来,等父进程调试它。

第二种模式:

直接attach到目标进程,使用DebugActiveProcess就可以了,参见:DebugActiveProcess function (Windows)

所以,Windows已经把所有你需要的工作都准备好了,至于自己是想做一个GUI还是命令行(比如gdb那种),完全就看自己的喜好。

热心网友 时间:2022-04-08 14:06

这是Windows提供的功能,Visual Studio只是给你做了个GUI而已。你要是看完了MSDN关于怎么写Debugger的那一章的话,你也可以自己写一个。

对于普通的debugger来说,最麻烦的也就是配合pdb出结果了,读pdb的话Visual Studio自己带有一个dll给你用。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
高中文言百段阅读训练目录 储罐如何评价李时行的书法与人品? 李时行嗜书不厌的通假字 李时行嗜书不厌 李时行是个什么样的人 文言文 李时行嗜书不厌急需翻译!!!~~~ 身高160cm体重60kg肩宽40胸围96腰围82穿多大码衣服? 上海外服交通银行项目怎么样,待遇是多少,工作时间是什么?公司好不好... “屋外下雨屋内漏”愁坏业主,中梁首府开发商:逐步解决 椒江中梁有哪些楼盘 中梁控股集团有哪些楼盘 电脑诊断卡显示的表示什么问题 visualC++中的debug应该怎么用啊? Debug卡是什么 DEBUG是什么 有什么用处啊 debug做什么用的 宋代文学家大苏,小苏,老苏的世称是什么 小苏肉怎样做 小苏抽起来怎么样啊,多少钱一包?? 小苏和大苏是什么烟?求图片 <<水浒传>>中的小苏是谁?(是苏轼吗?) 玉溪和小苏哪个好抽? 小苏什么意思 大苏小苏中的小苏指的是谁?我知道大苏是苏轼。 小苏 的 拼音 是 青海小苏案件回顾:女孩3岁吃鸡食被母亲用线缝嘴,后来怎样了? 香烟苏烟20的和45的怎么区分?他们称大苏和小苏,我怎么看都一样..除... 苏烟多少钱《小苏多少钱一条》,《大苏多少钱一条》,《中华多少钱一条》。 这个是大苏小苏?多少钱一盒? 抽小苏的都是什么人? 浙江卫视青年医生中小苏是什么病 debug咋学阿? C#中debug是什么意思 喝葡萄酒的好处和坏处? VC++6.0里面debug和release有什么差别?要详细解释 Bug的定义和原理? debug怎么用?是直接电脑上就有的程序吗? java remote debug 是什么原理 经期喝红酒好吗??? 为什么Debug环境中只能用十六进制表示数据,主要原因是什么啊? 初学微机原理 为何程序员大部分时间在debug? c语言中的调试有什么作用 bug和debug是什么意思? 经期能喝红酒吗?对身体有什么好处或坏处? 微机原理debug程序调试实验:显示256个ascii码字符 喝葡萄酒对人体有什么好处和坏处,邦巴国际贸易红酒如何 WIN10怎么打开debug? 喝红葡萄酒有什么好处和坏处谢谢了,大神帮忙啊 Eclipse的调试机制是什么样的,原理是什么? 有些股票投资者无法控制频繁交易的根本原因是什么? 为什么下载完抖音安装不了,提示内存不足,但内存还有很多,其他应用却可以下载?