gpt4 book ai didi

c - Eclipse 调试 C

转载 作者:行者123 更新时间:2023-11-30 15:17:27 24 4
gpt4 key购买 nike

环境:

  • 面向 C/C++ 开发人员的 Eclipse IDE 版本:Mars 版本 (4.5.0)
  • Ubuntu 14.04

我在 Eclipse 下遇到“ Debug模式”问题。我尝试调试一个简单的程序作为实验:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
char *s = malloc(1);
free(s);
s = NULL;
return 0;
}

程序正在正确构建并且正在运行,没有任何错误/警告,但在调试过程中我收到以下错误: enter image description here

我已经搜索了整个硬盘,但文件 malloc.c 不存在。

问题:

  1. 如果找不到malloc.c文件,为什么程序可以编译运行是否正确?

  2. 为什么调试器在函数可见时出现问题编译器?

  3. 有人过去见过这个问题并知道解决方案吗?

  4. 您使用的是哪种具有 Debug模式的编程环境除了 Eclipse 之外?

我发现了几个类似的主题,但没有一般问题解决方案:

  1. How can i Escape from "no source available" errors when stepping OVER a stdio function in eclipse (C language, using CDT)
  2. GDB on eclipse debug mode can't find stdlib/rand.c

运行命令:

# apt-get install libc6-dbg
# apt-get source libc6

没有解决问题。

最佳答案

要获取源文件 malloc.c,您需要 glibc 的源代码。

如果您必须调试 glibc,那么您很可能是 glibc 开发人员。几乎在所有其他情况下,跳过 glibc 会更好。当您设置断点时,我强烈建议您跳过 glibc 调用。

Glibc 通常不是由大量 C 代码实现的,而是由大量简单地封装在 C API 中的特定于机器的代码实现的,并且每个机器的特定于机器的代码都不同。

此外,调试器没有问题,它报告它没有库(在本例中为 glibc)的源代码,并且很乐意继续调试(但它无法向您显示行号,直到它跳出 glibc malloc 调用)。

关于c - Eclipse 调试 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32487657/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com