小编Jen*_*nce的帖子

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

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

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

包含此断点的模块尚未加载或无法获取断点地址。

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": …
Run Code Online (Sandbox Code Playgroud)

ubuntu gcc gdb visual-studio-code

4
推荐指数
1
解决办法
1万
查看次数

如何使用pthread库在堆上的特定位置创建锁?

我正在分配内存mmap,用于以集合关联的方式存储一些数据,我想同时访问集合。因此,如果有K个集合,那么我将为每个集合分配K + 1个时隙,其中第一个时隙用于元数据。在这里,在元数据插槽开始时,我想存储一个锁。那么,如何在此特定位置创建锁?我发现使用sizeof运算符,锁的大小为40B。因此,我确保每个条目至少为40B。

通常,我们使用以下命令创建pthread锁定

pthread_mutex_t锁定;

因此,将锁变量40B复制到所需位置是否安全?

由于调试并发程序很困难,因此如果有人可以告诉您这样做是正确的方法,那就太好了。谢谢。

c pthreads

3
推荐指数
1
解决办法
34
查看次数

标签 统计

c ×1

gcc ×1

gdb ×1

pthreads ×1

ubuntu ×1

visual-studio-code ×1