我在 lubuntu 上使用 netbeans8.0.1,但无法在调试环境中通过我的 malloc 实例。我刚刚进入构建树 malloc 函数,然后出现反汇编窗口,显示“!未找到源,文件:malloc.c,行:2,876”。我在 xcode 上运行了相同的代码,但现在我使用的是 linux 和 netbeans,它将无法运行。顺便说一句,这是使用 C 编程语言,代码用于解析器和自动微分工具。我是 C 语言的新手,但正如我之前所说,我在 xcode 上运行了同样的程序,但是当我将它带到我的笔记本电脑上进行进一步开发时,我遇到了这个问题。
struct node *buildtree(){
struct node* name=(struct node*)malloc(sizeof(struct node));
name->val=0;
name->sym='\0';
return name;
};
要在调试器中单步执行函数,您必须拥有该函数的代码。看来您无权访问 malloc 的代码,您有二进制的编译版本,但没有源代码。您的程序仍然可以运行,因为要发生这种情况,需要二进制代码而不是源文件。 您应该在调试时安装/下载正确的文件或跳过此功能。一个小提示:无需在 C 中转换 mallloc 的结果。
使用step into调试内置函数会出现这个问题。
1.使用step over跳过调试内置函数。
2.安装glibc。
对于 debian
sudo apt install glibc-source
cd /usr/src/glibc
sudo tar -xvf glibc-2.36.tar.xz
在 launch.json 中设置 "cwd": "/usr/src/glibc/glibc-2.36"
可以使用step into来调试内置函数