我的本意是查看data/bss/heap/stack等段的内容,通过gdb命令main i se打印出各段的地址空间范围(为运行前只有text/data/bss显示) 然后使用x显示相应地址的内容,但是我发现x/100s就能显示出变量明,其他格式就不行。比如说,我想知道0x80496e4地址上是什么变量,那么应该怎么操作?x/4s 0x80496e4? 能否以16进制的方式显示内容的同时,也显示变量名?
[code]root@c-dev:/cdev# vi stack.c[/code][code]int add (int x, int y) { int a =0; a = x; a += y; return a; } int main (int argc, char *argv[]) { int x, y, result; x = 0x12; y = 0x34; result = add(x, y); return 0; }[/code]如题,请教各位大神,怎样在gdb中获得add()函数的返回地址?在不反编译的情况下?请指点,谢谢。
比如: XX::XX() { int i = 1234; string strTest = "yyyy"; ………… } 我试过在里面下断点能停住,但是 (gdb)print i (gdb)print strTest (gdb)info local 都不行,似乎找不到这两个符号(Symbol)
最近在用gdb 和 bochs调试 0.11,打印用户态变量的地址和内核里变量的地址 搞不懂打印出来的究竟是 线性地址 还是 物理地址 亦或是逻辑地址? 求教了
<49 mdcc51 [changwei] :~/src> gdb smpa GNU gdb 6.6 Copyright (C) 2006 Free Software Foundation, Inc. gdb is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for gdb. Type "show warranty" for details. This gdb was configured a...
请问gdb有什么命令能查看一个函数中的某一变量的地址,或者有什么命令可以查看当前程序的内存分布?
函数中声明的变量是按向高地址方向增长还是向低地址方向增长?
问题来源于一段代码:[code]#include
本帖最后由 hongyunqi 于 2010-07-24 10:23 编辑 工作中遇到的问题,希望有人能帮忙解答 三个类的定义抽象出来是这样的[code]class B1 { public: virtual void func1(); } class B2 { public: virtual void func2(); } class D: public B1, public B2 { public: void func1(); void func2(); } int main() { B2 *dd = new D(); dd->func2(); }[/code]类D多重继承自两个类B1和B2,那么D的对象正常情况下应该有两个...