New in 10.2.2: C++ and Debugger Improvements
In RAD Studio 10.2.2, we've made a number of great quality improvements for the C++ toolchain and for the debugger for both C++ and Delphi.
Debugger
- Linux: many fixes when evaluating, especially when passing records or arrays
- Android: Android debugging was broken for Android 8.0 (globally, not just for us.) As of Android 8.1 debugging works again, and we have made tweaks to ensure it works smoothly
- iOS: several bugfixes to do with stability and evaluation
- macOS: Several bug fixes to do with evaluating and watching properties
- C++ Win64: applications can now evaluate properties. This is a long-standing request
...plus many others. In other words, the debugging experience should be more powerful and featureful, and more stable, in 10.2.2.
C++ toolchain
Linker
For Windows, linker improvements are something we've been focusing on since 10.2.0. Both 10.2.0 and 10.2.1 have brought significant improvements: a large address aware linker, retuning for large linksets, exposing options in the IDE for you to be able to change settings if your project has unusual characteristics that cause an error with the defaults.
In 10.2.2, we've fixed or changed:
- Out of memory issues for dwarf_str (debugging info)
- Issues linking when building Delphi code in a or as a C++ project
- Issues when linking with delay loads specified
- LME 200 and 202 errors
- Issues linking when not using runtime packages
- Issues using incremental linking
The most common linker issues reported are to do with out of memory or heap errors, and while the 10.2.x linker is far better than past versions, several of the above areas should make 10.2.2's even better.
As a side note, we find that many linker stability reports can be traced back to an antivirus on your system. LME288 is one common one. Antiviruses can insert themselves into apps in all sorts of ways, usually undocumented and fragile, and change the app's environment and behaviour. For something like the linker, that both uses a lot of memory and assembles a PE image in memory, avoiding antivirus interaction is key. We cannot prevent bugs introduced by third party software.
C++ compilers
We have a large number of quality items that, together, greatly improve C++ compatibility for many common libraries, as well as solving unusual compilation problems that can affect complex projects.
These areas include:
- Significant changes in handling explicitly instantiated templates, and export/import behaviour, when using __declspec(package). This declspec does not explicitly note when a definition is exported vs imported. If you have an instantiated template and multiple modules, you normally want only a single copy. Many compilers have different behaviour here, but our Clang compilers were not optimal, and had different behaviour to classic bcc32. For simple situations such as an EXE and a DLL, you should get the same behaviour as classic bcc. For more complicated situations behaviour may still be non-optimal, and we're interested in test cases for the scenarios you use.
- Many areas to do with exception handling, including different behaviour in optimized or release builds, issues throwing from within __try, and throwing and catching exceptions across module boundaries.
- Several key debugging improvements in the Clang-based compilers. If you had issues where variables were not evaluatable or not displayed, or other issues in general debugging, you should see those resolved.
- More <math.h> functions are fully provided
- Stability issues when handling unexpected (often incorrect) code
- Android: fixed an issue that could cause a crash at app startup
plus more.
In addition, we've made a number of significant fixes to code completion in the IDE: we resolved some unusual bugs that could cause AVs when code completing or cause IDE instability. This means that the IDE should be more stable, and if you were experiencing problems using code completion in the IDE, those should be resolved.
Many of these were complex issues that affected customers, and also affected using common libraries. 10.2.2's C++ toolchain support should be much more robust and we hope you throw lots of complex code at it.
https://community.embarcadero.com/blogs/entry/new-in-10-2-2-c-and-debugger-improvements
https://community.embarcadero.com/blogs/blogger/listings/david-millington
New in 10.2.2: C++ and Debugger Improvements的更多相关文章
- 2017.10.13 unable to open debugger port(127.0.0.1:10308)
参考来自:http://blog.csdn.net/qq_34360219/article/details/76169653 1.场景 突然间IDEA就跑不起项目了,报了如下的错误:unable to ...
- 关于flash player debugger 无法弹窗报错的解决办法
第一个是IE的插件, Download the Windows Flash Player 10.2 ActiveX control content debugger (for IE) (EXE, 2. ...
- android -- WatchDog看门狗分析
在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生 ...
- Debug with jdb
原文地址: http://www.javaworld.com/article/2077445/testing-debugging/debug-with-jdb.html Q: How do you u ...
- 转:Remote debugging with Visual Studio 2010
Original URL http://www.codeproject.com/Articles/146838/Remote-debugging-with-Visual-Studio-2010 you ...
- 《转》VS2010进行远程调试方法总结
---恢复内容开始--- 原文地址:http://blog.sina.com.cn/s/blog_a459dcf5010153o7.html 假设现在有A.B两台PC机. VS2010安装在A机器上, ...
- Microsoft Visual Studio调试监视器(MSVSMON.EXE)未能启动
在启动VS2010项目时,遇到如图所示"Microsoft Visual Studio调试监视器(MSVSMON.EXE)未能启动"的问题. 原因是VS2010安装路径(我的是D: ...
- vs远程调试 转http://www.cnblogs.com/magicchaiy/archive/2013/05/28/3088274.html
远程调试应用场景 部署环境:ASP.NET(C#)+IIS+Win7 64 bit 很多公司的开发模式都是将开发机器和服务器分开,也就是开发一台机,服务器一台机.而测试人员会在服务器上录入测试数据,此 ...
- VS远程调试亲历
背景: 很多情况下本地开发没有问题,可放到服务器就有问题(更气人的是测试环境时也行可就是生产环境不行!) 1.想到可能是服务器环境不对,Web服务器版本不对 2.有文件读写是不是文件夹权限 3.Web ...
随机推荐
- Mac 环境下svn服务器的配置
Mac 环境下svn服务器的配置 本文目录 • 一.创建代码仓库,用来存储客户端所上传的代码 • 二.配置svn的用户权限 • 三.使用svn客户端功能 在Windows环境中,我们一般使用Torto ...
- [Angular] Configurable Angular Components - Content Projection and Input Templates
We are going to have a modal component: <au-modal > </au-modal> And we can pass default ...
- crontab经验 分类: B3_LINUX 2015-03-06 11:17 282人阅读 评论(0) 收藏
1.基本格式 第1列分钟1-59 第2列小时1-23(0表示子夜) 第3列日1-31 第4列月1-12 第5列星期0-6(0表示星期天) 第6列要运行的命令 2.关于日志 (1)基本日志位 ...
- 记录一下phper的学习方向
我是一个懒惰的人,吃了多年技术老本儿,对新技术缺乏学习动力,仗着逻辑思维的优势处理问题 http://www.topthink.com/topic/26730.html
- HDU 1069 Monkey and Banana DP LIS
http://acm.hdu.edu.cn/showproblem.php?pid=1069 题目大意 一群研究员在研究猴子的智商(T T禽兽啊,欺负猴子!!!),他们决定在房顶放一串香蕉,并且给猴子 ...
- gerrit docker
修改项目配置文件 git clone ssh://admin@localhost:29418/All-Projects && scp -p -P 29418 admin@localho ...
- python高级学习目录
1. Linux介绍.命令1.1. 操作系统(科普章节) 1.2. 操作系统的发展史(科普章节) 1.3. 文件和目录 1.4. Ubuntu 图形界面入门 1.5. Linux 命令的基本使用 1. ...
- Spring的事务管理和数据库事务相关知识
1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:取钱. 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱:然后ATM出1000元钱. ...
- java的对象锁和对象传递
1.对象传递 在JAVA的參数传递中,有两种类型,第一种是基本类型传递,比如int,float,double等,这样的是值传递,第二种是对象传递,比方String或者自己定义的类,这样的是引用传递. ...
- TF-IDF模型
TF-IDF模型 1. 理论基础 由于数据挖掘所有数据都要以数字形式存在,而文本是以字符串形式存在.所以进行文本挖掘时需要先对字符串进行数字化,从而能够进行计算.TF-IDF就是这样一种技术,能够将字 ...