社区
Linux_Kernel
帖子详情
关于跟踪程序时的地址问题。。。。
你我他111
2004-10-10 10:20:33
不管是 MS windows 还是 linux下,在单步
跟踪一段程序的时候,我们可以在调试窗口看到变量的
地址,那么,这个地址是虚拟地址,还是实际的物理地址?
假如在DOS下面跟踪,看到的又是什么呢?
...全文
55
4
打赏
收藏
关于跟踪程序时的地址问题。。。。
不管是 MS windows 还是 linux下,在单步 跟踪一段程序的时候,我们可以在调试窗口看到变量的 地址,那么,这个地址是虚拟地址,还是实际的物理地址? 假如在DOS下面跟踪,看到的又是什么呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
akyca
2004-10-10
打赏
举报
回复
应该算是偏移地址
调试窗口一般都会显示当前的段,和段相关的一个概念是段基址。那么在当前显示的数据和代码地址都是其虚拟地址减去段基址之后的偏移量。这是Windows系统的情况。
Linux系统2.4.20的内核没有使用分段的机制,仅仅采用了二级页表来管理内存。因此调试窗口看到的应该是虚拟地址。
你我他111
2004-10-10
打赏
举报
回复
前面各位大哥的意思都是指偏移地址了,
那么我就这样理解了:
全局变量的地址是相对于数据段的地址(由DS标志基址)
局部变量的地址是相对于栈的偏移量(由SS标志基址)
还有一个疑问,就是动态分配的变量(它是从堆中分配的)的地址
是相对什么的呢,由哪个寄存器标志?
sharkhuang
2004-10-10
打赏
举报
回复
当然是虚地址啊
smaxll
2004-10-10
打赏
举报
回复
linux中也是虚拟地址,
全局变量地址是相对于数据段的偏移量
局部变量运行时储存于栈地址空间。
由操作系统为进程分配实际的物理内存,并记录到该进程的页表。
虚拟地址转化为线性地址,并由CPU传入MMU单元进行页表查询,
最后生成32位物理地址。
对程序来说,内存是由操作系统动态分配的,物理地址没有意义
4.9 使用debug
跟踪
exe
程序
执行过程
Dos在运行一个
程序
的
时
候,是由command将
程序
从可执行文件中加载入内存,并使其得以执行。这个过程我们无法追条指令地看到
程序
的执行过程,因为command的
程序
加载,设置CS:IP指向
程序
的入口的操作是连续完成的,而当CS:IP一指向
程序
的入口,command就放弃了CPU的控制权,CPU立即开始运行
程序
,直至
程序
结束 如果解决这样的矛盾,debug! Debug可以将
程序
加载...
程序
执行过程的
跟踪
:(用debug来
跟踪
一个
程序
的运行过程) 整理总结
1.理由:在DOS中运行一个
程序
的
时
候,是由command将
程序
可执行文件中加载入内存, 并得以执行的。但是我们看不到
程序
逐步执行的过程,因为command的
程序
加载和设置cs:IP指向
程序
的入口的操作是连续完成的,而当cs:ip一指向
程序
的入口,command就放弃了cpu的控制权,cpu立即开始执行
程序
,直到
程序
结束。 2.目的:为了观察
程序
的执行过程,可以使用Debug。Debug可以把
程序
Qt
程序
crash信息的捕捉与
跟踪
Qt
程序
crash信息的捕捉与
跟踪
在用qt编写
程序
时
经常会遇到崩溃
问题
,如果抓取不到crash堆栈信息就会对崩溃
问题
束手无策,只能对其进行复现,推断。 一般解决crash
问题
时
有如下步骤: 1.从软件发行版本能跟获得debug信息,在不同平台下有不同的表现方式,目前只讨论qt-mingw方式,这种方式可以利用修改工程文件配置项编译
时
讲debug信息加入应用
程序
当中;当然这会增加发行版应
Qt
程序
crash信息的捕捉与
跟踪
(qt-mingw)
在用qt编写
程序
时
经常会遇到崩溃
问题
,如果抓取不到crash堆栈信息就会对崩溃
问题
束手无策,只能对其进行复现,推断。 目录 一般解决crash
问题
时
有如下步骤: 如何执行以上3步骤,下面我详细介绍如何操作; 步骤1: 步骤2: 步骤3: 网友评论: 一般解决crash
问题
时
有如下步骤: 从软件发行版本能跟获得debug信息,在不同平台下有不同的表现方式,目...
使用ASP.NET
跟踪
Web应用
程序
什么是
跟踪
-Tracing?
跟踪
是一项在web服务端执行的记录特定网站页面相关诊断信息的动作。在本次讨论中我们将会讨论ASP.NET相关的
跟踪
技术。
跟踪
的需求当web
程序
在开发过程中
时
,开发人员可以使用内部的调试器发现并解决故障,但是在产品发布环境下,考虑到安全以及版权使用调试器对于管理员来说是一个巨大的任务。对于调试传统的ASP应用
程序
,我们没有办法去
跟踪
ASP页面的执行流程。对于
Linux_Kernel
4,436
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章