gpt4 book ai didi

ubuntu - 如何设置 Visual Studio Code 以在 Linux 上调试 C 程序?

转载 作者:行者123 更新时间:2023-12-04 18:25:31 28 4
gpt4 key购买 nike

我正在尝试在 Visual Studio Code 中调试 C 程序。
在我的目录中,我有 2 个文件 test.cMakefile 以及 .vscode 文件夹,其中包含 launch任务 json文件。
我在过去三个小时内尝试配置这些文件,搜索各种论坛和博客,但似乎没有任何效果。

我可以使用这两个 json 文件编译和运行。
程序运行并正确显示输出,但不会在断点处停止,在程序执行期间我无法添加断点,并且已经添加的断点被禁用并显示以下消息。

Module containing this breakpoint has not yet loaded or the breakpoint address could not be obtained.

似乎 VSCode 在调试阶段无法找到我的 test.c 文件,即使它位于同一目录中。如果有人能告诉我正确的方法,那就太好了。
在这里,我在我的文件夹中附加文件的内容。
launch.json

{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "gcc build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/test",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "tasks",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}

tasks.json

{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "tasks",
"type": "shell",
"command": "make",
"group": {
"kind": "build",
"isDefault": true
}
}
]
}

生成文件

all:
gcc test.c -o ./test

test.c

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

int main(){
printf("Mandar\n");
printf("Sadye\n");
return 0;
}

谢谢。

最佳答案

除了一件小事外,您的配置是正确的:您忘记传递 -g标记为 gcc。因此,test程序中没有调试信息,因此gdb不知道源代码和编译程序之间的关系。

此外,Makefile 中的目标应该指定它们所依赖的文件。您的 all 目标不依赖于 test.c,因此更改源代码不会导致重新编译。

这是一个固定的Makefile:

all: test

test: test.c
gcc -g test.c -o ./test

通过该修复,我能够使用 VSCode 1.36.1 在 Linux 上编译和调试该程序。

关于ubuntu - 如何设置 Visual Studio Code 以在 Linux 上调试 C 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57740199/

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