ChinaUnix.net
相关文章推荐:

gdb 打印函数地址

我使用gdb调试, 假设有一个函数: int func() { cout<<"hello"; return 1; } 运行如下的命令: (gdb)print func() 这样,只是打印出了函数的返回值, 但是函数内部的hello却没有打印出来, 请问如何能够调用一个函数,并且打印这个函数内部执行的输出语句呢? 谢谢回答!!!

by vaqeteart - C/C++ - 2010-03-02 18:02:52 阅读(1905) 回复(2)

相关讨论

我的本意是查看data/bss/heap/stack等段的内容,通过gdb命令main i se打印出各段的地址空间范围(为运行前只有text/data/bss显示) 然后使用x显示相应地址的内容,但是我发现x/100s就能显示出变量明,其他格式就不行。比如说,我想知道0x80496e4地址上是什么变量,那么应该怎么操作?x/4s 0x80496e4? 能否以16进制的方式显示内容的同时,也显示变量名?

by ruger - CPU与编译器 - 2011-04-09 21:43:12 阅读(4284) 回复(3)

[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()函数的返回地址?在不反编译的情况下?请指点,谢谢。

by superwujc - C/C++ - 2013-09-17 19:26:55 阅读(2948) 回复(2)

比如: XX::XX() { int i = 1234; string strTest = "yyyy"; ………… } 我试过在里面下断点能停住,但是 (gdb)print i (gdb)print strTest (gdb)info local 都不行,似乎找不到这两个符号(Symbol)

by 123456XP - C/C++ - 2012-06-18 19:53:28 阅读(1603) 回复(3)

最近在用gdb 和 bochs调试 0.11,打印用户态变量的地址和内核里变量的地址 搞不懂打印出来的究竟是 线性地址 还是 物理地址 亦或是逻辑地址? 求教了

by a_jige - 内核源码 - 2013-05-08 10:49:05 阅读(2508) 回复(5)

如题,我想在某个函数被调用时,打印那个时刻的函数调用栈到日志中; 就像gdb中bt命令显示的那样; 请教各位大牛这个是怎么实现的??

by yjh777 - C/C++ - 2010-12-14 10:51:58 阅读(8861) 回复(11)

本帖最后由 yshihyu 于 2013-09-16 21:18 编辑 有办法使用 gdb 跑过的代码的函数名称打印出来变成 log? 谢谢

by yshihyu - C/C++ - 2013-09-16 21:17:34 阅读(999) 回复(0)

<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栈地址

by cloudcrane - C/C++ - 2011-03-01 21:14:48 阅读(3611) 回复(5)

请问gdb有什么命令能查看一个函数中的某一变量的地址,或者有什么命令可以查看当前程序的内存分布? 函数中声明的变量是按向高地址方向增长还是向低地址方向增长? 问题来源于一段代码:[code]#include #include #include int main() { char source[] = "123456789"; //source和dest的定义先后顺序不同,执行结果不同 char dest[] = "123"; strcpy(dest, source); printf("%s\...

by bw_0927 - C/C++ - 2010-10-09 16:35:32 阅读(5164) 回复(9)

本帖最后由 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的对象正常情况下应该有两个...

by hongyunqi - C/C++ - 2010-07-24 20:05:39 阅读(3115) 回复(1)

在调试如内核或bootloader的时候,由于启动的时候会将自身的代码重定位,以至于gdb不能根据elf映像定位到源代码的位置。可以手工设置gdb中elf与源代码的地址映射吗?

by linyunxian - C/C++ - 2012-02-20 17:51:04 阅读(1800) 回复(2)