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

Linux下调试编写并调试C语言程序,怎么查看它的内存和CPU信息?GDB中可以实现吗?

发布网友 发布时间:2022-04-07 18:20

我来回答

3个回答

懂视网 时间:2022-04-07 22:42

格式: x /nfu

说明
x 是 examine 的缩写

n表示要显示的内存单元的个数

f表示显示方式, 可取如下值
x 按十六进制格式显示变量。
d 按十进制格式显示变量。
u 按十进制格式显示无符号整型。
o 按八进制格式显示变量。
t 按二进制格式显示变量。
a 按十六进制格式显示变量。
i 指令地址格式
c 按字符格式显示变量。
f 按浮点数格式显示变量。

u表示一个地址单元的长度
b表示单字节,
h表示双字节,
w表示四字节,
g表示八字节

Format letters are o(octal), x(hex), d(decimal), u(unsigneddecimal),
t(binary), f(float), a(address), i(instruction), c(char) ands(string).
Size letters are b(byte), h(halfword), w(word), g(giant, 8bytes)

举例
x/3uh buf 
表示从内存地址buf读取内容,
h表示以双字节为一个单位,
3表示三个单位,
u表示按十六进制显示

例子:

n是个局部变量

Breakpoint 1, main (argc=1,argv=0xbffff3a4) at calc.c:7
7 int n = atoi(argv[1]);
(gdb) print &n
$1 = (int *) 0xbffff2ec
(gdb) x 0xbffff2ec
0xbffff2ec: 0x00282ff4
(gdb) print * (int *) 0xbffff2ec
$2 = 2633716
(gdb) x /4xw 0xbffff2ec
0xbffff2ec: 0x00282ff4 0x080484e0 0x00000000 0xbffff378
(gdb) x /4dw 0xbffff2ec
0xbffff2ec: 2633716 134513888 0 -1073745032
(gdb)

二、gdb设置条件断点:

常用方法:先在想要设置条件断点的文件中随便设置一个断点,运行到该断点后,设置条件断点: break line if a ==value

gdb查看内存区和寄存器i

标签:

热心网友 时间:2022-04-07 19:50

内存和cpu是硬件的概念,在程序中只有被映射后的内存和线程/进程的概念,具体如何调度程序的内存地址和线程/进程的挂起和运行都是操作系统来做的。使用gdb能够查看当前程序各个变量的内存数据内容此时的内存地址对程序员来说是没什么用的(除非是做硬件开发,可能会需要),gdb还能够查看当前程序中那些线程被挂起或正在运行,但查询不到当前线程在哪个cpu上运行。追问对啊对啊,就是想看操作系统怎么弄的,比如fork()以后怎么看它占用的内存信息,和CPU是怎么处理的,什么时候挂起什么时候继续执行,还有它占用的内存起始地址多少占了多少,要怎么看呀,Linux就一脸懵*

追答回答被采纳,没法直接回复你的追问了,在这里说吧!无论在linux还是windows,你说的要求都是以看不了的。
首先内存在操作系统层面有一个物理地址到逻辑地址的映射,各类硬件设备、虚拟内存都会占用一部分内存地址空间,操作系统会将这些内存地址空间和实际的物理内存一起进行内存管理。所以你看到的内存地址,不一定是真实的物理内存地址看到只是逻辑地址。
在一个,cpu的调度。cpu的调度策略是取决于操作系统核心的,同样的linux,不同的核心版本可能调度cpu的方式都不一样。常用的程序语句sleep()或者互斥锁等等操作都会导致线程挂起,但当你的程序数量多于操作系统cpu数量时,cpu如何调度这些进程或者线程那就没法看到了。
上述两个问题都可以在操作系统原理相关的书籍中找到。建议你去看一下操作系统相关的数据来了解操作系统对内存与cpu的管理策略。当然,书里面的都是比较旧或者比较基础的原理。真正的常用操作系统可能有着自己独特的优化方式。

热心网友 时间:2022-04-07 21:08

可以用linux版的QT,很方便的。追问是嘛,过几天我安装好了再请教

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 李老师苹果型肥胖代饮茶配方 求三阶魔方实用零基础入门教程 求魔方教程,我是初级玩者 能玩出一面?(/偷笑)有什么易懂的视频教程 介绍一下 防尘口罩的保养方法是什么 为什么纱布口罩不可以用于防尘 非灭菌医用纱布如何使用 纱布口罩能作为防尘口罩使用吗? 1518周公解梦摘水果 非诚勿扰是真的等? 汽车在走的时候轮胎里面发出异响怎么办? 《非诚勿扰》中的某些故事是真实的吗? 车子轮胎发出吱吱的声音是怎么回事 街舞哪种舞种最好看 《非诚勿扰》女嘉宾都是假的,节目上的那些美女都是在哪请来的? 女生学跳街舞 ,最适合什么舞种呢? 街舞中什么舞种最受欢迎啊!什么最好看 打球后脚底很痛 街舞有哪些比较好看滴~~?? 街舞中,你哪个舞种跳起来最好看? 哪种街舞比较好看? 什么是“蓝牙”? 自己怎么泡减肥茶 怎样自制纤体瘦身花果茶? 120Hz 屏幕与60Hz 屏幕的差别有多大?红米K30至尊版深度测试 桅子和枸杞可以泡水吗 枸杞和栀子泡茶有什么好处? 菊花,栀子,枸杞,红枣能在一起泡水喝吗 枸杞菊花栀子玫瑰花冰糖可以一起泡吗 请问胖大海和枸杞还有栀子一起泡水喝有什么坏处或有什么好处 玫瑰枸杞黄芪栀子可以一块用么 荷叶栀子,枸杞,菊花,决明子,橘皮,甘草一起泡水喝能补肝血吗? 枸杞孑甘草栀子作用 菊花,枸杞,菊苣,栀子,五味子可以泡茶吗? 乌梅、山楂、菊花、枸杞子、栀子有什么功效?能一起泡开水喝吗?一次用量多少? 栀子、菊花、柠檬能一起泡水喝吗 菊花金银花枸杞葛根栀子一起能泡茶喝吗有什么效果? 狗狗用什么样子的狗窝好? 一年总结:我好想问自己学到了什么? 给狗狗买狗窝还是狗床好 想给我的小狗狗弄个窝,请问哪个狗狗用品网站的狗窝漂亮的?