首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GDB查找函数对应的内存地址/ debugging

使用GDB查找函数对应的内存地址/ debugging
EN

Stack Overflow用户
提问于 2016-04-07 23:50:58
回答 2查看 4.7K关注 0票数 1

我有一个基本的程序:

代码语言:javascript
复制
int initfunc(int *array, int len) {
  int i;
  for(i=1; i <= len; i++) {
    array[i] = i;
  }
 return 0;
}

int main(int argc, char* argv[]){

  int*  myarray=0;
  initfunc(myarray,10);
}

首先,我试着找出GDB中用来查找main存储在哪个内存地址中的命令。

而且我的错误是在第4行(arrayi = i),我试图找出我需要做什么才能让它运行。我的教授写了这个程序,所以我知道使用这些指针可能不是编写这个基本程序的好方法。我只是需要一些洞察力,因为我不太擅长指针。

EN

回答 2

Stack Overflow用户

发布于 2016-04-08 00:09:08

在编译之前,必须使用-g保存指向执行文件的符号链接。

如果你使用gdb a.out,你会得到错误:

正在从临时读取符号...(找不到调试符号)...done。

但是如果您使用g++ -g test.cpp,而现在使用gdb,您将看到:

从a.out...done读取符号的

现在您可以使用命令-gdb

看看这个:How to use GDB to find what function a memory address corresponds to

票数 0
EN

Stack Overflow用户

发布于 2016-04-08 00:23:37

我想通了,谢谢你的洞察。我只是在GDB中使用断点来计算函数的内存分配。我没有提到我在makefile中使用了-g,所以这部分已经完成了。另外,数组的内存分配不存在,这解决了这个问题!干杯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36481279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档