我正在尝试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) 我正在分配内存mmap,用于以集合关联的方式存储一些数据,我想同时访问集合。因此,如果有K个集合,那么我将为每个集合分配K + 1个时隙,其中第一个时隙用于元数据。在这里,在元数据插槽开始时,我想存储一个锁。那么,如何在此特定位置创建锁?我发现使用sizeof运算符,锁的大小为40B。因此,我确保每个条目至少为40B。
通常,我们使用以下命令创建pthread锁定
pthread_mutex_t锁定;
因此,将锁变量40B复制到所需位置是否安全?
由于调试并发程序很困难,因此如果有人可以告诉您这样做是正确的方法,那就太好了。谢谢。