在VS Code中调试并查看内存地址

1. 创建调试配置文件

打开VSCode,在项目目录下按下F5,VSCode就会在目录下生成.vscode配置文件夹,修改其中的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": "gdb调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\build\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-win32-seh-rt_v6-rev0\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

注:修改其中的miDebuggerPath为自己系统中gdb的地址

2. 在项目代码中添加内存打印的代码

void memory_dump(void *ptr, int len) {
    int i;
    printf("%p\n", ptr);
    for (i = 0; i < len; i++) {
        if (i % 8 == 0 && i != 0)
            printf(" ");
        if (i % 16 == 0 && i != 0)
            printf("\n");
        printf("%02x ", *((uint8_t *)ptr + i));
    }
    printf("\n");
}

并在需要访问内存的地方执行这段代码。
如下图所示:
在这里插入图片描述

3. 在build文件夹中生成项目

创建CMakeLists.txt,内容如下:

cmake_minimum_required(VERSION 2.8)
project(array)
set(CMAKE_BUILD_TYPE "Debug")

add_executable(${PROJECT_NAME} array.cpp)

在终端中执行cmake:

cmake -S . -B ./build -G "MinGW Makefiles"
cmake --build ./build

4. 打断点,按F5开始调试

在这里插入图片描述

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Keil查看内存数据主要有两种方式,分别是“Memory”窗口和“Watch”窗口。 1. “Memory”窗口 在Keil,点击菜单栏的“View”,选择“Serial Windows”下的“Memory”,即可打开“Memory”窗口。在窗口的“Address”栏输入要查看内存地址,然后点击“View”按钮或者按下“F5”键即可在窗口查看到该地址的内存数据。在窗口还可以对内存数据进行编辑、保存等操作。 2. “Watch”窗口 除了打开“Memory”窗口查看指定内存地址的数据,还可以在“Watch”窗口进行观察。在Keil,点击菜单栏的“View”,选择“Watch”即可打开“Watch”窗口。在窗口的“Watch 1”栏输入要观察的变量名称,如“*p”(指针变量p所指向的内存数据),然后点击“Add”按钮或者按下“F2”键即可在窗口查看到该变量名所表示的内存数据。可以在窗口添加多个要观察的变量名称。在窗口还可以对变量数据进行编辑、保存等操作。 综上,在Keil查看内存数据比较简便,可以通过两种窗口实现,都比较直观易用。 ### 回答2: 在Keil查看内存数据的方法有多种。其一种方法是通过使用Memory window(内存窗口)。 步骤如下: 1. 打开Keil软件,并打开需要查看内存数据的工程。 2. 点击菜单栏的"Debug",然后选择"Start/Stop Debug Session"。 3. 等待程序开始执行并暂停,然后点击菜单栏上的"View",并选择"Memory Window"打开内存窗口。 4. 在内存窗口可以选择需要查看内存地址,也可以通过选择变量名或寄存器名来查看相关的内存数据。 5. 在内存窗口可以以十六进制、十进制或二进制的形式显示内存数据,也可以对内存数据进行修改。 除了Memory Window,Keil还提供了一些其它方法来查看内存数据,例如Watch Window(监视窗口)、Expression Window(表达式窗口)等。这些窗口都可以在调试的过程动态地显示内存的数据,并且也可以对变量和内存数据进行修改。对于需要深入调试和分析程序的开发人员来说,了解如何使用这些工具是非常重要的。 ### 回答3: 在Keil查看内存数据可以通过如下步骤: 第一步,打开内存窗口。在Keil的左侧窗口可以看到Project栏,点击右侧的Target1,然后选择Peripherals栏,再点击Memory1。如下图所示: ![内存窗口](https://img-blog.csdn.net/20170307233958446?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWljaGFlbC5ibG9nZ3NfaW1hZ2VfZGNvZGU=//font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/50) 第二步,选择需要查看的内存区域。Keil提供多种内存区域选择,如Code(程序代码区)、Xdata(xRAM数据区)、Data(数据区)等。我们可以在"Address"栏输入需要查看内存地址,然后在"Size"栏输入需要查看的内存大小。如下图所示: ![选择内存区域](https://img-blog.csdn.net/20170307234510105?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWljaGFlbC5ibG9nZ3NfaW1hZ2VfZGNvZGU=//font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/50) 第三步,查看内存数据。在输入完内存地址和大小后,点击"GO"按钮即可查看内存数据。在内存窗口,我们可以查看到所选内存区域的全部内容,以及对应的地址。如下图所示: ![查看内存数据](https://img-blog.csdn.net/20170307234635773?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWljaGFlbC5ibG9nZ3NfaW1hZ2VfZGNvZGU=//font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/50) 以上就是在Keil查看内存数据的方法,通过这种方法我们可以查看程序代码、数据、变量等内存信息,从而更好地进行调试工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值