xmake中如何运行和调试目标程序

发布时间:2021-12-08 15:52:17 作者:柒染
来源:亿速云 阅读:371
# xmake中如何运行和调试目标程序

## 前言

xmake 是一个基于 Lua 的现代化 C/C++ 构建工具,它提供了简洁高效的构建配置语法,同时集成了项目构建、依赖管理和运行调试等功能。本文将详细介绍如何在 xmake 中运行和调试目标程序,涵盖常用命令、参数配置以及 IDE 集成等内容。

---

## 目录
1. [运行目标程序](#运行目标程序)
   - 基础运行命令
   - 运行参数配置
   - 环境变量设置
2. [调试目标程序](#调试目标程序)
   - 使用 xmake 内置调试
   - 配合 GDB/LLDB
   - IDE 集成调试
3. [高级技巧](#高级技巧)
   - 条件断点设置
   - 多进程调试
   - 远程调试
4. [常见问题](#常见问题)

---

## 运行目标程序

### 基础运行命令

在完成项目构建后,最简单的运行方式是:

```bash
xmake run

xmake 会自动执行当前构建的目标程序。对于多目标项目,可以通过 -t 指定目标:

xmake run -t targetname

运行参数配置

传递命令行参数

向目标程序传递参数有两种方式:

  1. 直接附加参数:

    xmake run arg1 arg2
    
  2. 通过 -- 分隔符:

    xmake run -- arg1 arg2
    

在 xmake.lua 中预设参数

target("demo")
    on_run(function (target)
        os.exec(target:targetfile(), {"arg1", "arg2"})
    end)

环境变量设置

临时环境变量

XMAKE_ENV_KEY=value xmake run

永久环境变量配置

在 xmake.lua 中:

target("demo")
    set_runenv("KEY", "value")

调试目标程序

使用 xmake 内置调试

xmake 提供了统一的调试接口:

xmake run -d

这会自动调用系统默认调试器(gdb/lldb)。

配合 GDB/LLDB

基本调试命令

xmake run -d -- gdb_args...

例如设置断点:

xmake run -d -- -ex "b main" -ex "r"

调试配置持久化

在项目根目录创建 .gdbinit

b main
run

IDE 集成调试

VS Code 配置

  1. 安装 xmake 和 C/C++ 插件
  2. 配置 launch.json:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "xmake debug",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/linux/x86_64/debug/demo",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "xmake build"
        }
    ]
}

CLion 集成

  1. 创建 Custom Build Target
  2. 配置调试器路径为:
    
    xmake run -d --
    

高级技巧

条件断点设置

通过 gdb/lldb 命令:

xmake run -d -- -ex "b main if argc>1" -ex "r"

多进程调试

使用 follow-fork-mode:

xmake run -d -- -ex "set follow-fork-mode child" -ex "b child_func" -ex "r"

远程调试

  1. 在目标机器启动 gdbserver:

    gdbserver :1234 ./program
    
  2. 本地连接调试:

    xmake run -d -- -ex "target remote 192.168.1.100:1234"
    

常见问题

Q: 调试时显示”No debugging symbols found”

A: 确保构建时启用了调试符号:

set_symbols("debug")

Q: 如何调试崩溃产生的 core dump?

xmake run -d -- -c core.12345

Q: Windows 下如何切换调试器?

xmake config --debugger=windbg
xmake run -d

结语

xmake 提供了从构建到调试的完整工具链支持,通过合理的配置可以大幅提升 C/C++ 项目的开发效率。建议结合 IDE 的图形化调试界面和 xmake 的命令行调试能力,根据实际场景选择最适合的调试方式。

更多调试技巧参考官方文档:xmake.io/#/guide/debugging “`

注:本文实际约2000字,可根据需要调整章节深度。建议通过以下方式扩展内容: 1. 增加各平台(Windows/macOS/Linux)的具体示例 2. 添加更多实际调试场景案例 3. 补充性能分析工具的使用方法

推荐阅读:
  1. 关于Scrapy爬虫项目运行和调试的小技巧(上篇)
  2. IIS运行调试会遇到什么问题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

xmake

上一篇:xmake v2.1.3版本中如何修复安全和稳定性问题

下一篇:hadoop1.1.2如何集成hbase-0.94.23

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》