当前位置: 首页 > news >正文

18、【OS】【Nuttx】用gdb调试nuttx os

背景

接之前wiki
14、【OS】【Nuttx】Nsh中运行第一个程序
15、【OS】【Nuttx】OS裁剪,运行指定程序,周期打印当前任务
程序跑起来了,OS也裁剪了,下一步就是调试了

目标

用gdb把nuttx程序跑起来

准备环境

vscode商店里C和C++相关的调试插件装一下,这里不用Runner
在这里插入图片描述

  • build-essential:确保安装了所有编写和编译C/C++代码所需的最基础软件
sudo apt-get install build-essential

查看下gdb版本,版本ok

adminpc@adminpc-:~/nuttx_plat$ gdb -v
GNU gdb (Ubuntu 15.0.50.20240403-0ubuntu1) 15.0.50.20240403-git
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

查看下gdb的位置,等会儿要用

adminpc@adminpc:~/nuttx_plat$ which gdb
/usr/bin/gdb

配置文件

项目目录如下:
/nuttx_plat/.vscode
/nuttx_plat/nuttx
/nuttx_plat/nuttx-apps
这里有三个关键文件,launch.json,tasks.json,build,位置如下
/nuttx_plat/.vscode/launch.json
/nuttx_plat/.vscode/tasks.json
/nuttx_plat/nuttx/scripts/build

  • launch.json文件如下,解释下关键配置项:
    program:即最终构建生成的可执行文件
    externalConsole:外部控制台选择false,毕竟vscode连接的linux,没有多余窗口
    stopAtEntry:是否停在程序入口,按需选择
    preLaunchTask:启动调试前,要先做的任务,一般就是构建任务,不然可执行文件从哪里来
    miDebuggerPath:gdb路径,前面找过的
{"version": "0.2.0","configurations": [{"name": "(gdb) nuttx_os","type": "cppdbg","request": "launch","program": "${workspaceFolder}/nuttx/nuttx","args": [],"stopAtEntry": true,"cwd": "${workspaceFolder}/nuttx","environment": [],"externalConsole": false,"MIMode": "gdb","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "nuttx_build","miDebuggerPath": "/usr/bin/gdb","logging": {"engineLogging": false,"traceResponse": false}}]
}
  • tasks.json文件如下,解释下关键配置项
    label:任务标签要和launch.json的preLaunchTask配置项保持一致
    type:任务的执行环境为shell
    command:将启用一个新终端,来执行args参数里面的任务
    args:这里传递构建脚本作为参数给终端执行
    option/cwd:构建脚本执行时的工作目录
    group/kind:执行的是构建活动
{"version": "2.0.0","tasks": [{"label": "nuttx_build","type": "shell","command": "/bin/bash","args": ["${workspaceFolder}/nuttx/scripts/build"],"options": {"cwd": "${workspaceFolder}/nuttx/scripts"},"group": {"kind": "build","isDefault": true},"problemMatcher": ["$gcc"],"detail": "Generated task to build the project using make."}]
}
  • build文件如下,该文件主要定义了nuttx的构建活动,前面的wiki都有介绍过
#!/bin/bashcd ..
make distclean
tools/configure.sh sim:ostest
make

执行调试&效果

配置好上面两个json后,左边菜单debug会出现我们配置的(gdb)nuttx_os
在这里插入图片描述
点击调试,vscode会自动新建个终端执行构建活动
在这里插入图片描述
构建结束后会自动跳到程序入口进行等待
在这里插入图片描述

和直接gdb在终端里面调试效果一样

adminpc@adminpc:~/nuttx_plat/nuttx$ gdb nuttx 
GNU gdb (Ubuntu 15.0.50.20240403-0ubuntu1) 15.0.50.20240403-git
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:<http://www.gnu.org/software/gdb/documentation/>.For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from nuttx...
(gdb) break main
Breakpoint 1 at 0x40001316: file sim/sim_head.c, line 166.
(gdb) run
Starting program: /home/adminpc/nuttx_pdt/nuttx/nuttx This GDB supports auto-downloading debuginfo from the following URLs:<https://debuginfod.ubuntu.com>
Enable debuginfod for this session? (y or [n]) y
Debuginfod has been enabled.
To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
Downloading separate debug info for system-supplied DSO at 0x7ffff7fc3000
[Thread debugging using libthread_db enabled]                                                                                                                               
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".Breakpoint 1, main (argc=32767, argv=0x7fffffffdf70, envp=0x7ffff7fe5af0 <dl_main>) at sim/sim_head.c:166
166     {
(gdb) 

相关文章:

18、【OS】【Nuttx】用gdb调试nuttx os

背景 接之前wiki 14、【OS】【Nuttx】Nsh中运行第一个程序 15、【OS】【Nuttx】OS裁剪&#xff0c;运行指定程序&#xff0c;周期打印当前任务 程序跑起来了&#xff0c;OS也裁剪了&#xff0c;下一步就是调试了 目标 用gdb把nuttx程序跑起来 准备环境 vscode商店里C和C相…...

网络爬虫科普:原理、类型、策略与常用工具

网络爬虫科普&#xff1a;原理、类型、策略与常用工具 网络爬虫在当今互联网时代扮演着极为重要的角色&#xff0c;它能帮助我们从海量的网络信息中提取出有价值的数据。以下将从网络爬虫的基本概念、工作流程、类型、搜索策略以及常用工具等方面进行详细科普介绍。 一、网络…...

SQL 实战:动态表创建与多表更新的高级 SQL

在实际的数据库管理和开发中&#xff0c;经常需要临时存储中间计算结果或对多表数据进行批量更新。SQL 提供了动态表创建和多表更新的能力&#xff0c;使复杂业务逻辑能够通过一条 SQL 语句高效完成。本文将介绍如何动态创建临时表和实现多表联动更新&#xff0c;并通过具体示例…...

RabbitMQ基础篇之快速入门

文章目录 一、目标需求二、RabbitMQ 控制台操作步骤1.创建队列2.交换机概述3.向交换机发送消息4.结果分析5.消息丢失原因 三、绑定交换机与队列四、测试消息发送五、消息查看六、结论 一、目标需求 新建队列&#xff1a;创建 hello.queue1 和 hello.queue2 两个队列。消息发送…...

NLP论文速读(NeurIPS 2024)|BERT作为生成式上下文学习者BERTs are Generative In-Context Learners

论文速读|BERTs are Generative In-Context Learners 论文信息&#xff1a; 简介&#xff1a; 本文探讨了在自然语言处理&#xff08;NLP&#xff09;领域中&#xff0c;上下文学习&#xff08;in-context learning&#xff09;的能力&#xff0c;这通常与因果语言模型&#x…...

LeetCode - Google 校招100题 第7天 序列(数据结构贪心) (15题)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/144744418 相关文章&#xff1a; LeetCode 合计最常见的 112 题&#xff1a; 校招100题 第1天 链表(List) (19题)校招100题 第2天 树(Tree) (21…...

基于Docker基础与操作实战

6.1 Docker容器简介 Docker是一个开源的应用容器引擎&#xff0c;它基于Go语言并遵从Apache2.0 协议开源。 Docker是一个用于开发&#xff0c;交付和运行应用程序的开放平台。Docker能将应用程序与基础架构分开&#xff0c;从而可以快速交付软件。借助Docker&#xff0c;您可…...

高转化的Facebook广告文案的秘诀

Facebook 广告文案是制作有效 Facebook 广告的关键方面。它侧重于伴随广告视觉元素的文本内容。今天我们的博客将深入探讨成功的 Facebook 广告文案的秘密&#xff01; 一、广告文案怎么写&#xff1f; 正文&#xff1a;这是帖子的正文&#xff0c;出现在您姓名的正下方。它可…...

支持向量机入门指南:从原理到实践

目录 1 支持向量机的基本概念 1.2 数学表达 2 间隔与支持向量 2.1 几何间隔 2.2 支持向量的概念 2.3 规范化超平面 2.4 支持向量的深入分析 2.4.1 支持向量的特征 2.4.2 支持向量的作用 2.4.3 支持向量的代数表示 2.5 KKT条件 3 最优化问题 3.1 问题的形成 3.2 规…...

汽车打气泵方案|智能充气泵工作原理

汽车打气泵方案最开始是机械式的开发&#xff0c;后来慢慢地演变成由一个气缸、压力传感器和ADC芯片以及主控芯片&#xff0c;就能够使得打气筒具备智能充气功能&#xff0c;摇身一变变成汽车打气泵方案。它具备精准压力检测以及过充过放等功能&#xff0c;利用ADC芯片和压力传…...

Jenkins入门使用

Jenkins入门使用 1先安装jdk才能运行jenkins yum install -y java-1.8.0-openjdk.x86_64 2 安装jenkins&#xff0c;运行&#xff0c;进行端口绑定&#xff0c;启动jenkins docker search jenkins docker pull jenkins/jenkins docker run -d -u root -p 8080:8080 -p 50000:50…...

iOS Masonry对包体积的影响

01 Masonry介绍 Masonry是iOS在控件布局中经常使用的一个轻量级框架&#xff0c;Masonry让NSLayoutConstraint使用起来更为简洁。Masonry简化了NSLayoutConstraint的使用方式&#xff0c;让我们可以以链式的方式为我们的控件指定约束。 常用接口声明与实现&#xff1a; 使用方式…...

Hive分区再分桶表

在Hive中&#xff0c;数据通常是根据分区&#xff08;partition&#xff09;来组织的&#xff0c;但是对于大数据集&#xff0c;单层分区可能不够用&#xff0c;因此可以进一步细分为桶&#xff08;bucket&#xff09;。桶可以用于提供额外的并行处理和优化查询性能。在这种情况…...

三大行业案例:AI大模型+Agent实践全景

本文将从AI Agent和大模型的发展背景切入&#xff0c;结合51Talk、哈啰出行以及B站三个各具特色的行业案例&#xff0c;带你一窥事件驱动架构、RAG技术、人机协作流程&#xff0c;以及一整套行之有效的实操方法。具体包含内容有&#xff1a;51Talk如何让智能客服“主动进攻”&a…...

国产低代码框架zdppy开发笔记002 标准的接口响应

前言 通过前面的学习, 我们已经知道了zdppy_api和zdppy_req的基本用法, 接下来我们会在学习中多次用到这两个框架. 我们已经知道了该如何响应一个字符串,但是我们该如何响应json数据呢? 在zdppy_api中,我们定义了一组规范的API响应, 我们慢慢来看看. 规范的响应 首先来看…...

关于Nginx

1.Nginx的配置 proxy_pass http: 当你需要将请求分发到多个后端服务器时&#xff0c;需要实现负载均衡功能&#xff0c;可以使用upstream指令定义一组服务器&#xff0c;并在proxy_pass中引用这个服务组名称。。如果不需要负载均衡&#xff0c;只需要将请求转发到单一的后端…...

数据库实时会话管理,性能问题诊断后的临门一脚

目录 前言 实时会话管理 DBdoctor 实时会话功能 1.实时会话列表 2.结束会话 3.操作历史 4.SQL分析 结语 前言 在之前的文章中我们介绍了DBdoctor性能洞察功能&#xff0c;它能够快速量化数据库连接会话单条SQL的资源消耗&#xff0c;实现性能问题快速根因定位并给出优…...

以EM算法为例介绍坐标上升(Coordinate Ascent)算法:中英双语

中文版 什么是 Coordinate Ascent 算法&#xff1f; Coordinate Ascent&#xff08;坐标上升&#xff09;是一种优化算法&#xff0c;它通过在每次迭代时优化一个变量&#xff08;或一个坐标&#xff09;&#xff0c;并保持其他变量不变&#xff0c;逐步逼近最优解。与坐标下…...

visual studio连接sql server数据库

目录 1、为什么要建立连接2、在sql server中建立数据库3、visual studio连接sql server数据库4、学生信息管理系统页面布局5、添加事件逻辑 5.1 页面跳转5.2 读取学生信息5.3 查询学生信息5.4 修改学生信息5.5 删除学生信息5.6 添加学生信息 bilibili演示视频 github源码 1、…...

磁盘的相关操作

1.让U盘连接到虚拟机中 两种方法&#xff1a;1>在弹出的窗口中设置 2>通过选项设置 菜单栏---->虚拟机----->可移动设备---->找到U盘名---->连接到虚拟机中 2.查看U盘是否已被成功识别 方法&#xff1a;ls /dev/sd* 显示包含除了sda外的文件说明U盘连接成功…...

数据结构与算法Python版 图的应用与广度优先搜索

文章目录 一、图的应用-词梯问题二、图的广度优先搜索 一、图的应用-词梯问题 词梯问题 Word Ladder 从一个单词演变到另一个单词&#xff0c;其中的过程可以经过多个中间单词。要求是相邻两个单词之间差异只能是1个字母如FOOL变SAGE&#xff1a;FOOL >> POOL >>…...

Unity——InputField组件自动换行和enter键换行

文章目录 输入框实现换行功能 输入框实现换行功能 在Unity中&#xff0c;如果你想要在输入框&#xff08;如InputField&#xff09;中实现换行功能 &#xff0c;你需要确保以下几点&#xff1a; 1、文本组件支持多行&#xff1a; 确保你的InputField的文本组件&#xff08;Te…...

solr9.7 单机安装教程

1.环境要求:jdk11以上 2.下载wget https://dlcdn.apache.org/solr/solr/9.7.0/solr-9.7.0.tgz 3.解压 4.修改solr.in.sh配置 5.启动命令 bin/solr start 6.创建core bin/solr create -c <core名称> 注意:用solr ui界面创建&#xff0c;会提示找不到solrconfig.xml和m…...

​虚幻引擎UE5渲染不够快的解决办法

​虚幻引擎是由Epic Games公司开发的一款功能强大、全球最开放且先进的实时 3D 创作工具&#xff0c;广泛应用于游戏、影视、建筑可视化、虚拟现实等多个领域&#xff01;虚幻引擎UE5如何实现在网上极速渲染呢&#xff1f;本文提供云渲染和云电脑两套方案用于渲染提速&#xff…...

基于STM32的智能家居环境监控系统设计

目录 引言系统设计 硬件设计软件设计系统功能模块 环境监控模块控制模块显示模块系统实现 硬件实现软件实现系统调试与优化结论与展望 1. 引言 随着智能家居技术的发展&#xff0c;环境监控系统已经成为家居管理的重要组成部分。智能家居环境监控系统通过实时监测室内温度、湿…...

Android service framework笔记

1. 网络摘录如何添加一个Application Framework Service(一)(without native code) 如何添加一个Application Framework Service(二)(with native code) 2.书籍摘录...

【图像处理lec10】图像压缩

目录 一、图像压缩基础 1、图像压缩的基本概念 2、数据冗余与压缩比 3、三种主要的数据冗余类型 4、保真度评估标准&#xff08;Fidelity Criteria&#xff09; 5、应用与实践 二、图像压缩模型 1、图像压缩模型概述 &#xff08;1&#xff09;压缩系统的结构 &#…...

flask后端开发(2):URL与视图

目录 URL定义request获取请求参数 gitcode地址&#xff1a; https://gitcode.com/qq_43920838/flask_project.git URL定义 from flask import FlaskappFlask(__name__)app.route(/) def hello_world():return Hello World!app.route(/profile) def profile():return 我是个人…...

Linux Ubuntu24配置安装Java

目录 一. 通过apt安装java1.1 列出所有可用java版本1.2 安装指定java版本1.3 安装后确认1.4 /etc/alternatives/目录 二. 手动安装java 一. 通过apt安装java 1.1 列出所有可用java版本 apt list openjdk-*jdk apluserubuntu24-01:~$ apt list openjdk-*jdk Listing... Done …...

线段树例题题解

卫星覆盖&#xff08;NOI1997&#xff09; 题面&#xff1a; SERCOI&#xff08;Space-Earth Resource Cover-Observe lnstitute&#xff09; 是一个致力于利用卫星技术对空间和地球资源进行覆盖观测的组织。现在他们研制成功一种新型资源观测卫星 -SERCOI-308。这种卫星可以…...

极品飞车6的游戏手柄设置

极品飞车&#xff0c;既可以用键盘来控制车辆的前进、后退、左转、右转、加速与减速&#xff0c;也可以使用游戏手柄来操作车辆的运行。需要注意的是&#xff0c;极品飞车虽然支持手柄&#xff0c;但是仅支持常见的北通、罗技还有部分Xbox系列的手柄&#xff0c;至于其他的PS4手…...

为何DeepSeek V3模型为自己是ChatGPT?

DeepSeek V3 AI模型&#xff1a;为何它认为自己是ChatGPT&#xff1f; 引言 在人工智能领域&#xff0c;最新的技术进展总是令人兴奋。最近&#xff0c;一家资金雄厚的中国AI实验室DeepSeek发布了一款新的AI模型——DeepSeek V3&#xff0c;它在多个流行基准测试中超越了许多…...

【每日学点鸿蒙知识】人脸活体检测、NodeController刷新、自动关闭输入框、Row设置中间最大宽、WebView单例

1、HarmonyOS 人脸活体检测调用&#xff1f; H5调用应用侧方法可参考以下demo&#xff1a; index.ets Web()//注册方法.javaScriptProxy({object: this.testObj,name: "testObjName",methodList: ["getLocationTS"],controller: this.webController})cla…...

深入理解Composer自动加载机制

Composer是PHP生态系统中最常用的依赖管理工具之一&#xff0c;它不仅能够帮助开发者管理项目的依赖关系&#xff0c;还能够自动加载这些依赖项。自动加载机制是Composer的核心功能之一&#xff0c;通过自动加载&#xff0c;开发者可以在运行时按需加载所需的类和文件&#xff…...

SQL SERVER日常运维巡检系列之-日志

前言 做好日常巡检是数据库管理和维护的重要步骤&#xff0c;而且需要对每次巡检日期、结果进行登记&#xff0c;同时可能需要出一份巡检报告。 本系列旨在解决一些常见的困扰&#xff1a; 不知道巡检哪些东西不知道怎么样便捷体检机器太多体检麻烦生成报告困难&#xff0c;无…...

2024年中国新能源汽车用车发展怎么样 PaperGPT(二)

用车趋势深入分析 接上文&#xff0c;2024年中国新能源汽车用车发展怎么样 PaperGPT&#xff08;一&#xff09;-CSDN博客本文将继续深入探讨新能源汽车的用车强度、充电行为以及充电设施的现状。 用车强度 月均行驶里程&#xff1a;2024年纯电车辆月均行驶超过1500公里&…...

【数据结构】线性数据结构——链表

1. 定义 链表是一种线性数据结构&#xff0c;由多个节点&#xff08;Node&#xff09;组成。每个节点存储数据和指向下一个节点的指针。与数组不同&#xff0c;链表的节点不需要在内存中连续存储。 2. 特点 动态存储&#xff1a; 链表的大小不固定&#xff0c;可以动态增加或…...

Spring中的设计模式

Spring中的设计模式 控制反转(IoC)和依赖注入(DI) IoC 是一个原则&#xff0c;而不是一个模式&#xff0c;以下模式&#xff08;但不限于&#xff09;实现了 IoC 原则。 **Spring IoC 容器就像是一个工厂一样&#xff0c;当我们需要创建一个对象的时候&#xff0c;只需要配置…...

微信小程序给外面的view设置display:flex;后为什么无法给里面的view设置宽度

如果父盒子view设置了display:flex&#xff0c;子view设置宽度值无效&#xff0c;宽度值都是随着内容多少而改变&#xff1a; 问题视图&#xff1a; 原因&#xff1a; flex布局元素的子元素&#xff0c;自动获得了flex-shrink的属性 解决方法&#xff1a; 给子view增加:fl…...

异步爬虫之aiohttp的使用

在上一篇博客我们介绍了异步爬虫的基本原理和 asyncio 的基本用法&#xff0c;并且在最后简单提及了使用aiohttp 实现网页爬取的过程。本篇博客我们介绍一下 aiohttp 的常见用法。 基本介绍 前面介绍的 asyncio模块&#xff0c;其内部实现了对 TCP、UDP、SSL协议的异步操作&a…...

vue3大屏实现;使用使用CSS Grid实现大屏

文章目录 一、效果1.效果2.使用CSS Grid3.插件4.html代码5.index.scss代码 一、效果 1.效果 方案&#xff1a;采用CSS的Grid布局&#xff0c;实现首页大屏模块划分和自适应功能&#xff1b; 布局&#xff1a; 大屏主要内容&#xff0c;高宽比是1920*1080&#xff1b;即16:9的…...

安卓入门二 Kotlin基础

Kotlin Kotlin的历史 Kotlin由Jet Brains公司开发设计&#xff0c;2011年公布第一版&#xff0c;2012年开源。 2016年发布1.0正式版&#xff0c;并且Jet Brains在IDEA加入对Kotlin的支持&#xff0c;安卓自此又有新的选择。 2019年谷歌宣布Kotlin成为安卓第一开发语言&#x…...

在ubuntu上如何使用sdkman安装两个版本的java并进行管理和维护

在Ubuntu上使用SDKMAN安装和管理两个不同版本的Java的步骤如下&#xff1a; 安装SDKMAN 打开终端&#xff0c;使用以下命令安装SDKMAN&#xff1a; curl -s "https://get.sdkman.io" | bash这个命令会下载并运行SDKMAN!的安装脚本。 安装完成后&#xff0c;需要打开…...

《代码随想录》Day20打卡!

《代码随想录》二叉树&#xff1a;二叉搜索树的最近公共祖先 本题的完整题目如下&#xff1a; 本题的思路如下&#xff1a; 1.之前写过一个二叉树的最近公共祖先&#xff0c;本题相比于另一道题&#xff0c;不同是本题是二叉搜索树&#xff0c;有一些可用的性质。 2.本题使用递…...

GPIO相关寄存器,点灯

目录 一.输入模式 1.浮空输入 2.上拉输入 3.下拉输入 4.模拟输入 二.输出模式 1.推挽输出 2.开漏输出 三.寄存器 1.寄存器的作用 2.功能与类型 3.控制某一引脚输出电压来点灯所需要控制的寄存器 1.打开对应时钟开关 2.端口模式寄存器 ---输出模式 3.输出类型寄存…...

25 - GRACE Mascon数据缺失月份数据插值

25 - GRACE Mascon数据缺失月份数据插值 0 引言1 程序包获取1.1 获取ssa插值算法程序包1.2 try2 利用ssa对grace mascon数据进行插值3 完整代码及相关函数3.1 Main程序3.1 子程序4 总结0 引言 💦💦💦💦💦   上篇介绍了grace mascon数据提取及简单的分析过程,仔细…...

深入理解Redis:从理论到实践的Java之旅

Redis&#xff0c;这个开源的内存数据结构存储系统&#xff0c;自2009年诞生以来&#xff0c;凭借其丰富的数据结构、快速的读写性能以及高度的可扩展性&#xff0c;迅速成为了分布式系统和高并发应用中的明星组件。本文将带你深入理解Redis&#xff0c;并通过Java语言的实践示…...

REDIS的集群

REDIS的集群模式&#xff1a; 主从模式&#xff1a;redis高可用的基础&#xff0c;哨兵和集群都是建立在此基础之上 特点&#xff1a; 主从模式和数据库的主从模式&#xff08;工作模式&#xff09;是一样的&#xff0c;主负责写入&#xff0c;然后把写入到数据同步到从&…...

linux——vi命令常用操作

一、vi模式 vi一般分为三种模式&#xff0c;分别是命令行模式、插入模式、末行模式 1.命令模式&#xff1a;控制屏幕光标的移动&#xff0c;按 &#xff1a;进入末行模式&#xff0c;按 i&#xff08;其他插入命令也可&#xff09; 进入插入模式&#xff1b; 2.插入模式&…...

SKETCHPAD——允许语言模型生成中间草图,在几何、函数、图算法和游戏策略等所有数学任务中持续提高基础模型的性能

概述 论文地址&#xff1a;https://arxiv.org/pdf/2406.09403 素描是一种应用广泛的有效工具&#xff0c;包括产生创意和解决问题。由于素描能直接传达无法用语言表达的视觉和空间信息&#xff0c;因此从古代岩画到现代建筑图纸&#xff0c;素描在世界各地被用于各种用途。儿童…...