c++ - 使用GDB查找某个函数对应的内存地址/调试

标签 c++ c unix gdb

我有这个基本程序:

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 行 (array[i] = i),我试图弄清楚我需要做什么才能让它运行。我的教授编写了这个程序,所以我知道使用这些指针可能不是编写这个基本程序的好方法。我只需要一些见识,因为我不太擅长指点。

最佳答案

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

关于c++ - 使用GDB查找某个函数对应的内存地址/调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36481279/

相关文章:

单个管道可以用于父级和子级之间的双向通信吗?

c++ - 如何在 C++11 中初始化 pair<vector<pair<bool,int>>,vector<pair<bool,int>>>

c++ - 处理字符串时出现 super 奇怪的错误

c - STM32F4带RS485接口(interface)

linux - 使用带有附件和主题行的 unix 命令发送邮件

创建两个子进程完成奇偶级数求和

c++ - 将控制符号添加到字节流

c++ - 实现可被接受为 std::ostringstream 引用的无操作 std::ostringstream

c - 将字符指针分配给字符指针数组

c - 非法使用 float