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

虚幻5的C++调试踩坑

本地调试VS附加调试

踩坑1 预编译版本的UE5没有符号文件,无法调试源码

官方代码调试所需要的符号文件bdp需要下载导入。我安装的5.5.4是预编译版本,并非ue5源码。所以不含bdp文件。需要调试官方代码则需要通过EPIC中下载安装。右键UE版本,打开 选项。
在这里插入图片描述
到此,若你调试,可以看到官方代码能够调试成功,但是自己的代码附加调试还是无法命中断点。

纯蓝图转C++项目

在虚幻5中,首先创建项目有两种:纯蓝图 以及 C++项目。
通过工具新建c++类。可以先建个空白的。然后退出UE5,打开项目根目录,删除Binaries文件夹、Intermediate文件夹。右键Draft.uproject选择生成项目文件,接着打开Draft.sln解决方案。
在这里插入图片描述
打开项目后,解决方案里面有多个项目,只需要设置自己项目名称为启动项目,然后重新生成。
到此。蓝图项目变为了C++项目。编译成功后,通过EPIC可以打开。打开后UE界面右下角出现编译图标。
关闭实时编译防止报错。

本地调试(新创建一个UE界面)

此时,选择Development Editor 配置调试项目Draft,使用绿色本地调试按钮,则会重新创建一个UE5窗口,能够进入并命中断点。这种方式调试成功,但是每次需要重新打开UE编辑器,时间慢、卡顿。
因此需要使用附加程序调试。

踩坑2 附加程序调试

选择附加程序到Unreal engine.exe上调试。发现显示断点无法命中,不生效,打开UE5编辑器测试。确实如此。
检查自己的代码执行,确实输出了日志,表示执行了,但是没命中断点。

打开 调试-窗口-模块。发现只有名称Unreal Editor.exe模块。自己的项目名称为Draft没有加载进来。

查资料得知:

检查编译的配置,这里有四种模式,Debug Game、Debug GameEditor、Development、Development Editor。每种功能不一样。
在这里插入图片描述
测试检查发现,无论哪一种他们有一些能够在项目文件夹Draft\Binaries\Win64\中生成相关的pdb符号文件。但是这些dll或者exe都没有在附加程序调试的时候被加载到模块中。

到此,附加程序调试时候,编译没问题、程序执行有输出(只是不命中断点)、pdb符号文件生成成功的、死活就是加载不进去!!!!
直接本地调试一下就命中了,气人😡

断点失效原因:最后发现附加程序调试的时候,会加载整个UE编辑器的代码模块,因此数量庞大,而Visual Studio默认的调试模块最多500个,导致我自己写的代码生成的pdb文件没有加载进去。
解决办法:通过添加以下注册表项并重新启动 PC 来增加限制
打开注册表,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
新建项:类型DWORD,10进制,名称DebuggerMaxModuleMsgs ,值 2048。重启电脑。

选择最长用的Development Editor,x64,Draft。启动EPIC的UE5项目,重新附加到Unreal Editor。
打开调试-窗口-模块。加载的模块大于500了,直接搜索Draft,发现有了。测试是否能调试:按照预期命中断点。并且不会再新打开UE5编辑器了。在这里插入图片描述

相关文章:

虚幻5的C++调试踩坑

本地调试VS附加调试 踩坑1 预编译版本的UE5没有符号文件,无法调试源码 官方代码调试所需要的符号文件bdp需要下载导入。我安装的5.5.4是预编译版本,并非ue5源码。所以不含bdp文件。需要调试官方代码则需要通过EPIC中下载安装。右键UE版本,打…...

react 中将生成二维码保存到相册

需求:生成二维码,能保存到相册 框架用的 react 所以直接 qrcode.react 插件,然后直接用插件生成二维码,这里一定要写 renderAs{‘svg’} 属性,否则会报错,这里为什么会报错??&#…...

通信协议详解(十):PSI5 —— 汽车安全传感器的“抗干扰狙击手”

一、PSI5是什么? 一句话秒懂 PSI5就像传感器界的“防弹信使”:在汽车安全系统(如气囊)中,用两根线同时完成供电数据传输,即便车祸时线路受损,仍能确保关键信号准确送达! 基础概念…...

C语言【模仿strcpy】

题目 模仿strcpy 思路&#xff08;注意事项&#xff09; 注意需要在复制的字符串结尾加\0表示字符串的终止 纯代码 #include<stdio.h>void cpy(const char *a, char *b){int i 0;while (a[i] ! \0){b[i] a[i];i ;}b[i] \0; } int main(){char a[] "HELLO&quo…...

从零开始学Python游戏编程18-函数3

《从零开始学Python游戏编程17-函数2》中&#xff0c;通过代码重构的方式将游戏的主要代码写入到自定义函数runGame()中。对于runGame()中的代码&#xff0c;可以继续对其进行重构&#xff0c;以达到简化代码结构的目的。 1 自定义函数askPlayer() 1.1 函数作用 自定义函数a…...

Spring事务传播机制

Spring 事务传播机制定义了在多个事务方法相互调用时&#xff0c;事务如何在这些方法间传播。它决定了一个事务方法调用另一个事务方法时&#xff0c;新的事务是如何开启、是否要加入已有的事务等情况。Spring 提供了 7 种事务传播行为&#xff0c;下面是详细介绍。 解释说明&…...

不同PHP框架之间的兼容性问题及应对策略!

在PHP开发领域&#xff0c;Laravel、Symfony、Yii、ThinkPHP、亿坊PHP等框架因其高效性和便捷性广受开发者青睐。但当项目需要跨框架协作或迁移时&#xff0c;兼容性问题直击要害。本文将从实际案例出发&#xff0c;剖析不同PHP框架间常见的兼容性痛点&#xff0c;并为大家提供…...

Qt 子项目依赖管理:从原理到实践的最佳分析:depends还是 CONFIG += ordered

1. 问题背景 在Qt项目开发中&#xff0c;当一个工程包含多个子项目&#xff08;如库、插件、测试模块&#xff09;时&#xff0c;如何正确管理它们的构建顺序和依赖关系&#xff1f; 如&#xff1a; 在开发一个包含核心库&#xff08;core&#xff09;、GUI模块&#xff08;g…...

大数据专业学习路线

大数据专业学习路线 目录 基础知识核心技术进阶技能实战项目职业发展学习资源学习计划常见问题 1. 基础知识 1.1 编程语言 Python&#xff1a;大数据分析的基础语言 基础语法和数据类型函数和模块面向对象编程文件操作和异常处理常用库&#xff1a;NumPy, Pandas, Matplot…...

点云从入门到精通技术详解100篇-基于点云的三维多目标追踪与目标检测

目录 知识储备 基于Python和Open3D库实现的三维点云多目标检测与跟踪 技术要点解析 : 运行环境配置: 扩展改进建议 : 前言 三维多目标追踪技术 点云目标检测算法 2 二维多目标追踪框架及三维点云目标检测 2.1 二维多目标追踪框架 2.1.1 Deep SORT总体架构 2.1…...

dubbo配置中心

配置中心 简介 配置中心&#xff08;config-center&#xff09;在dubbo中可承担两类职责&#xff1a; 外部化配置&#xff1a;启动配置的集中式存储。流量治理规则存储。 Dubbo动态配置中心定义了两个不同层次的隔离选项&#xff0c;分别是namespace和group。 namespace&a…...

Java常用工具算法-5--哈希算法、加密算法、签名算法关系梳理

1、哈希算法 数学本质&#xff1a;将任意长度输入&#xff08;明文&#xff09;映射为固定长度输出&#xff08;哈希值&#xff0c;也称摘要&#xff09;。主要特点&#xff1a; 不可逆性&#xff1a;无法通过哈希值反推原始输入。雪崩效应&#xff1a;输入的微小变化导致哈希…...

python之安装PaddlePaddle和PaddleX解析pdf表格

目录标题 飞桨PaddlePaddle本地安装教程1-1. 基于 Docker 安装飞桨1-2. 基于 pip 安装飞桨2. 我两个环境 都选择的是pip 安装10. 如果报错10. 离线安装 飞桨PaddlePaddle本地安装教程 源码下载&#xff1a;https://github.com/PaddlePaddle/PaddleX/blob/release/3.0-beta1/do…...

【11408学习记录】英语语法核心突破:揭秘表语从句结构与通知写作实战技巧

表语从句与通知写作 英语语法总结——主从复合句表语从句语句结构系动词表语从句的位置 写作通知写作第二段第三段落款 每日一句词汇第一步&#xff1a;找谓语第二步&#xff1a;断句第三步&#xff1a;简化第一句第二句第三句第四句第五句 英语 语法总结——主从复合句 表语…...

React Native 0.79发布 - 更快的工具及更多改进

React Native 0.79版本发布了。 此版本在多个方面进行了性能改进&#xff0c;并修复了一些漏洞。首先&#xff0c;得益于延迟哈希技术&#xff0c;Metro的启动速度变快了&#xff0c;并且对包导出提供了稳定支持。由于JS包压缩方式的改变等原因&#xff0c;Android的启动时间也…...

封装红黑树实现map和set

前言&#xff1a; 之前我们学习了set与map容器的如何使用&#xff0c;红黑树的实现。接下来我们来看看如何通过封装红黑树&#xff0c;实现我们自己的set与map 相关文章&#xff1a;oi&#xff01;让我来给你唠唠咋实现红黑树☝️-CSDN博客 超详细介绍map&…...

解码AI大脑:Claude的思维显微镜与语言炼金术

&#xff08;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff09;。 一、多语言思维实验&#xff1a;Claude的“概念空间”如何运转&#xff1f; 跨语言谜题&#xff1a;反义词的…...

中科岩创基坑自动化监测解决方案

1.行业现状 城市基坑开挖具有施工风险高、施工难度大等特点。由于地下土体性质、荷载条件、施工环境的复杂性&#xff0c;单根据地质勘察资料和室内土工试验参数来确定设计和施工方案&#xff0c;往往含有许多不确定因素&#xff0c;对在施工过程中引发的土体性状、环境、邻近建…...

机器学习01-支持向量机(SVM)(未完)

参考浙大 胡浩基老师 的课以及以下链接&#xff1a; https://blog.csdn.net/m0_74100344/article/details/139560508 https://blog.csdn.net/2301_78630677/article/details/132657023 https://blog.csdn.net/lsb2002/article/details/131338700 一、一些定义 T是倒置&…...

CUDA编译器nvcc

nvcc&#xff08;NVIDIA CUDA Compiler&#xff09;是 NVIDIA 提供的 CUDA 编译器&#xff0c;用于编译 .cu 文件&#xff08;CUDA C/C 代码&#xff09;。它支持多种参数来控制编译过程&#xff0c;包括 GPU 架构优化、CUDA 库链接、调试选项等。以下是 nvcc 常用参数分类详解…...

Elasticsearch 系列专题 - 第一篇:Elasticsearch 入门

Elasticsearch 是一个功能强大的开源分布式搜索和分析引擎,广泛应用于日志分析、实时搜索、数据可视化等领域。本篇将带你了解 Elasticsearch 的基本概念、安装方法以及简单操作,帮助你快速上手。 1. 什么是 Elasticsearch? 1.1 Elasticsearch 的定义与核心概念 Elasticse…...

leetcode_数组 189. 轮转数组

189. 轮转数组 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3输出: [5,6,7,1,2,3,4] 示例 2: 输入&#xff1a;nums [-1,-100,3,99], k 2输出&#xff1a;[3,99,-1,-100] 思…...

Python基础全解析:从输入输出到字符编码的深度探索

一、Python程序交互的基石&#xff1a;Print函数详解 1.1 基础输出功能 # 输出数字 print(20.5) # 输出浮点数&#xff1a;20.5 print(0b0010) # 输出二进制数&#xff1a;10# 输出字符串 print(Hello World!) # 经典输出示例# 表达式计算 print(4 4 * (2-1)…...

[ctfshow web入门] web32

前置知识 协议相关博客&#xff1a;https://blog.csdn.net/m0_73353130/article/details/136212770 include&#xff1a;include "filename"这是最常用的方法&#xff0c;除此之外还可以 include url&#xff0c;被包含的文件会被当做代码执行。 data://&#xff1a…...

指针数组 vs 数组指针

一、指针数组&#xff1a;「数组装指针」—— 每个元素都是指针 &#x1f50d; 核心定义 语法&#xff1a;类型* 数组名[长度]; &#xff08;[]优先级高于*&#xff0c;先形成数组&#xff0c;元素是指针&#xff09;本质&#xff1a;一个 数组&#xff0c;数组的每个元素是 …...

鸿蒙开发中的并发与多线程

文章目录 前言异步并发 (Promise和async/await)多线程并发并发能力选择耗时任务并发执行场景常见业务场景 常驻任务并发执行场景常见业务场景 传统共享内存并发业务长时任务并发执行场景常见业务场景 并发任务管理线程间通信同语言线程间通信&#xff08;ArkTS内&#xff09;线…...

TCP和UDP的区别是什么?

1. 基本特性: TCP&#xff1a; 面向连接&#xff1a;在数据传输开始前&#xff0c;TCP需要在通信双方建立连接&#xff08;三次握手&#xff09;。可靠性&#xff1a;TCP保证数据的可靠传输&#xff0c;通过确认应答、重传机制、数据包顺序等确保数据无误到达。流量控制和拥塞…...

MySQL 函数(入门版)

目录 一、字符串函数 1、常用的字符串函数 2、函数演示 3、具体案例 二、数值函数 1、常用的数值函数 2、函数演示 3、具体案例 三、日期函数 1、常用的日期函数 2、函数演示 3、具体案例 四、流程函数 1、常用的流程函数 2、函数演示 3、具体案例 在MySQL中&a…...

Simulink中Signal Builder在新版中找不到怎么办

在较新的MATLAB版本中&#xff0c;新版Simulink中的Signal Builder用Signal Editor作为替代工具。 signal builder not shown in matlab - MATLAB Answers - MATLAB Central signalBuilderToSignalEditor 1.打开上面第二个链接 2.点击拷贝 3.然后在命令行中粘贴 4.然后就会…...

【补题】P10424 [蓝桥杯 2024 省 B] 好数(数位dp)

题意&#xff1a; 一个整数如果按从低位到高位的顺序&#xff0c;奇数位&#xff08;个位、百位、万位……&#xff09;上的数字是奇数&#xff0c;偶数位&#xff08;十位、千位、十万位……&#xff09;上的数字是偶数&#xff0c;我们就称之为“好数”。 给定一个正整数 N…...