Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带和不带地址的gdb回溯帧_Gdb - Fatal编程技术网

带和不带地址的gdb回溯帧

带和不带地址的gdb回溯帧,gdb,Gdb,当我使用gdb bt时——我看到一些帧以地址开头,而一些帧则不是——为什么有些函数不以地址开头 #6 0x000000000041fd1d in func (argc=0, argv=0x8723a0, t=<value optimized out>) at file1.c:55 #7 record (argc=0, argv=0x8723a0, x=<value optimized out>) at file3.c:11 #6 0x000000000041fd1d

当我使用gdb bt时——我看到一些帧以地址开头,而一些帧则不是——为什么有些函数不以地址开头

#6  0x000000000041fd1d in func (argc=0, argv=0x8723a0, t=<value optimized out>) at file1.c:55
#7  record (argc=0, argv=0x8723a0, x=<value optimized out>) at file3.c:11
#6 0x000000000041fd1d,在文件1的func中(argc=0,argv=0x8723a0,t=)。c:55
#7文件3处的记录(argc=0,argv=0x8723a0,x=)。c:11
我相信
record()
是内联的,并且是另一个函数的一部分,该函数是上框架,而
func()
不是内联的。我猜是
gdb
选择以这种方式显示内联函数,如果它有符号信息的话。我使用GDB7.0。gdb的早期版本似乎没有以这种方式显示内联函数

听着,我和英国电信的情况差不多:

Thread 1 (Thread 1405):
#0  0x00002ac752a93d17 in allocate (this=0x3716b1e0, __in_chrg=<value optimized out>) at /import/home/bc_prod1/bc/data/daily/PROF_HAS_LIBS_005.00/18.05.2012_15_19_04/i686-redhat-linux_5.0_-64/src/build/xalanc-1.11/xml-xalan/c/src/xalanc/Include/XalanList.hpp:537
#1  getListHead (this=0x3716b1e0, __in_chrg=<value optimized out>) at /import/home/bc_prod1/bc/data/daily/PROF_HAS_LIBS_005.00/18.05.2012_15_19_04/i686-redhat-linux_5.0_-64/src/build/xalanc-1.11/xml-xalan/c/src/xalanc/Include/XalanList.hpp:517
#2  end (this=0x3716b1e0, __in_chrg=<value optimized out>) at /import/home/bc_prod1/bc/data/daily/PROF_HAS_LIBS_005.00/18.05.2012_15_19_04/i686-redhat-linux_5.0_-64/src/build/xalanc-1.11/xml-xalan/c/src/xalanc/Include/XalanList.hpp:282
#3  xalanc_1_11::ICUBridgeCollationCompareFunctorImpl::~ICUBridgeCollationCompareFunctorImpl (this=0x3716b1e0, __in_chrg=<value optimized out>) at /import/home/bc_prod1/bc/data/daily/PROF_HAS_LIBS_005.00/18.05.2012_15_19_04/i686-redhat-linux_5.0_-64/src/build/xalanc-1.11/xml-xalan/c/src/xalanc/ICUBridge/ICUBridgeCollationCompareFunctorImpl.cpp:144
线程1(线程1405):
#0 0x00002ac752a93d17在/import/home/bc_prod1/bc/data/daily/PROF_HAS_LIBS_005.00/18.05.2012_15_19_04/i686-redhat-linux_5.0_64/src/build/xalanc-1.11/xml xalan/c/src/xalanc/Include/XalanList.hpp中分配
#1个getListHead(this=0x3716b1e0,u in_chrg=)位于/import/home/bc_prod1/bc/data/daily/PROF_HAS_LIBS_005.00/18.05.2012_15_19_04/i686-redhat-linux_5.0_64/src/build/xalanc-1.11/xml xalan/c/src/xalanc/xalanc/Include/XalanList.hpp:517
#在/import/home/bc_prod1/bc/data/daily/PROF_HAS_LIBS_005.00/18.05.2012_15_19_04/i686-redhat-linux_5.0_64/src/build/xalanc-1.11/xml xalan/c/src/xalanc/Include/XalanList.hpp:282处结束(this=0x3716b1e0=0x3716b1e0,u in_-chrg=)
#3 xalanc_1_11::ICUBridgeCollationCompareFunctorImpl::~ICUBridgeCollationCompareFunctorImpl(this=0x3716b1e0,u in_chrg=)位于/import/home/bc_prod1/bc/data/daily/PROF_HAS_LIBS_005.00/18.05.2012_15_19_04/i686-redhat-linux_u5.0_64/src/build/xalanc/xalan-1.11/xml/c/src/src/xub/xalanc/xancompa/cpa.144
我的解释是,在我的情况下,第1帧中的
getListHead()
,第2帧中的
end()
是内联的,这就是为什么它们显示时没有自己的地址。它们实际上是第3帧函数的一部分,
ICUBridgeCollationCompareFunctorImpl::~ICUBridgeCollationCompareFunctorImpl()
,该函数实际上没有内联并有其地址


顺便说一下,当我对第1帧、第2帧和第3帧执行
disass
时,我得到了相同的输出。

您能为“记录”功能提供函数签名吗?以及“func”函数。我想检查它们是否是内联的等。理想情况下,当您调试最新的堆栈帧时,总是不显示函数地址-(检查最后一行)。但在你的情况下,它似乎是最后一帧。我仍然想知道为什么!:)