1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-28 10:43:31 +02:00
cdt/NewAndNoteworthy/OlderReleases/CDT-9.0.html
Jonah Graham f0c2358276 Migrate New and Noteworthy from Wiki to GitHub
This commit migrates all the N&N content from
https://wiki.eclipse.org/CDT/User/NewInCDT to GitHub.

For newer releases (>= CDT 10.0) the entire content has
been rewritten in GitHub flavour Markdown. For older
releases, the N&N page has simply been saved in a
rendered format.
2022-10-02 20:46:56 -04:00

729 lines
No EOL
85 KiB
HTML

<!DOCTYPE html>
<!-- saved from url=(0041)https://wiki.eclipse.org/CDT/User/NewIn90 -->
<html lang="en" dir="ltr" class="client-js"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script type="text/javascript" async="" src="./CDT-9.0_files/f.txt"></script><script type="text/javascript" async="" src="./CDT-9.0_files/insight.min.js"></script><script type="text/javascript" async="" src="./CDT-9.0_files/js"></script><script src="./CDT-9.0_files/conversations-embed.js" type="text/javascript" id="hubspot-messages-loader" data-loader="hs-scriptloader" data-hsjs-portal="5413615" data-hsjs-env="prod" data-hsjs-hublet="na1"></script><script src="./CDT-9.0_files/5413615.js" type="text/javascript" id="cookieBanner-5413615" data-cookieconsent="ignore" data-hs-ignore="true" data-loader="hs-scriptloader" data-hsjs-portal="5413615" data-hsjs-env="prod" data-hsjs-hublet="na1"></script><script src="./CDT-9.0_files/5413615(1).js" type="text/javascript" id="hs-analytics"></script><script src="./CDT-9.0_files/fb.js" type="text/javascript" id="hs-ads-pixel-5413615" data-ads-portal-id="5413615" data-ads-env="prod" data-loader="hs-scriptloader" data-hsjs-portal="5413615" data-hsjs-env="prod" data-hsjs-hublet="na1"></script><script type="text/javascript" async="" src="./CDT-9.0_files/analytics.js"></script><script async="" src="./CDT-9.0_files/gtm.js"></script>
<title>CDT/User/NewIn90 - Eclipsepedia</title>
<script>document.documentElement.className = document.documentElement.className.replace( /(^|\s)client-nojs(\s|$)/, "$1client-js$2" );</script>
<script>window.RLQ = window.RLQ || []; window.RLQ.push( function () {
mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":!1,"wgNamespaceNumber":0,"wgPageName":"CDT/User/NewIn90","wgTitle":"CDT/User/NewIn90","wgCurRevisionId":420097,"wgRevisionId":420097,"wgArticleId":35999,"wgIsArticle":!0,"wgIsRedirect":!1,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgBreakFrames":!1,"wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"CDT/User/NewIn90","wgRelevantArticleId":35999,"wgIsProbablyEditable":!1,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgWikiEditorEnabledModules":{"toolbar":!1,"dialogs":!1,"preview":!1,"publish":!1},
"wgCategoryTreePageCategoryOptions":"{\"mode\":0,\"hideprefix\":20,\"showcount\":true,\"namespaces\":false}"});mw.loader.implement("user.options",function($,jQuery){mw.user.options.set({"variant":"en"});});mw.loader.implement("user.tokens",function($,jQuery){mw.user.tokens.set({"editToken":"+\\","patrolToken":"+\\","watchToken":"+\\"});});mw.loader.load(["mediawiki.page.startup","mediawiki.legacy.wikibits"]);
} );</script>
<link rel="stylesheet" href="./CDT-9.0_files/load.php">
<link rel="stylesheet" href="./CDT-9.0_files/styles.css" media="screen, print">
<style>
.mw-collapsible-toggle{float:right;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none} .mw-content-ltr .mw-collapsible-toggle,.mw-content-rtl .mw-content-ltr .mw-collapsible-toggle{float:right} .mw-content-rtl .mw-collapsible-toggle,.mw-content-ltr .mw-content-rtl .mw-collapsible-toggle{float:left}.mw-customtoggle,.mw-collapsible-toggle{cursor:pointer} caption .mw-collapsible-toggle,.mw-content-ltr caption .mw-collapsible-toggle,.mw-content-rtl caption .mw-collapsible-toggle,.mw-content-rtl .mw-content-ltr caption .mw-collapsible-toggle,.mw-content-ltr .mw-content-rtl caption .mw-collapsible-toggle{float:none} li .mw-collapsible-toggle,.mw-content-ltr li .mw-collapsible-toggle,.mw-content-rtl li .mw-collapsible-toggle,.mw-content-rtl .mw-content-ltr li .mw-collapsible-toggle,.mw-content-ltr .mw-content-rtl li .mw-collapsible-toggle{float:none} .mw-collapsible-toggle-li{list-style:none}
.suggestions{overflow:hidden;position:absolute;top:0;left:0;width:0;border:none;z-index:1099;padding:0;margin:-1px 0 0 0}.suggestions-special{position:relative;background-color:white;cursor:pointer;border:solid 1px #aaaaaa;padding:0;margin:0;margin-top:-2px;display:none;padding:0.25em 0.25em;line-height:1.25em}.suggestions-results{background-color:white;cursor:pointer;border:solid 1px #aaaaaa;padding:0;margin:0}.suggestions-result{color:black;margin:0;line-height:1.5em;padding:0.01em 0.25em;text-align:left; overflow:hidden;-o-text-overflow:ellipsis; text-overflow:ellipsis;white-space:nowrap}.suggestions-result-current{background-color:#4C59A6;color:white}.suggestions-special .special-label{color:gray;text-align:left}.suggestions-special .special-query{color:black;font-style:italic;text-align:left}.suggestions-special .special-hover{background-color:silver}.suggestions-result-current .special-label,.suggestions-result-current .special-query{color:white}.highlight{font-weight:bold}
.postedit-container{margin:0 auto;position:fixed;top:0;height:0;left:50%;z-index:1000;font-size:13px}.postedit-container:hover{cursor:pointer}.postedit{position:relative;top:0.6em;left:-50%;padding:.6em 3.6em .6em 1.1em;line-height:1.5625em;color:#626465;background-color:#f4f4f4;border:1px solid #dcd9d9;text-shadow:0 0.0625em 0 rgba(255,255,255,0.5);border-radius:5px;box-shadow:0 2px 5px 0 #ccc;-webkit-transition:all 0.25s ease-in-out;-moz-transition:all 0.25s ease-in-out;-ms-transition:all 0.25s ease-in-out;-o-transition:all 0.25s ease-in-out;transition:all 0.25s ease-in-out}.skin-monobook .postedit{top:6em !important}.postedit-faded{opacity:0}.postedit-icon{padding-left:41px; line-height:25px;background-repeat:no-repeat;background-position:8px 50%}.postedit-icon-checkmark{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABblBMVEUAAAD///////9PfTf///80aRdTgjn///9Feij///////////9Rfzf///////////9PfjZRgDh1o1xOfTb///////+bwYqLtnj///////9PfTa82K////9WhT6YxIL///9QgDdTgzr////////j7uDl7eLq8efi693k7OH///////9UhjuBr2rp9uRUhjr///9YljVKgir///9WiTlYjT3////9/v57vFlbkT5PjC9dlD/5/fhuq09stUTs9uhxuElctCpfnT1huDFloEZloUZmpENmvDZpvDxpvTxqvjxrvT5rvT9rwTxsqktswD5uwkBvuUdxw0NztFBztU9ztVBzwkp0tlJ1xkd2t1R3uVR4w1F4xk54x014yE15uVZ5v1R5xVB6v1R7yFJ8wVh9xVl9yFR9yVd9ylN+xVh+yFd/x1l/yFeAylmEx1+Ny2uY0Hqe04Wj1Ymv3Ze33qLD47TJ5L3O6cPU7Mrq9eb2+/Q4j37OAAAAQHRSTlMAAQIEBAUFBQwPFB4fJCUoKiosQEhJS01RUlZZXmdydXaChYuSlJSWmJmoq6uur8LExcvM19fg5ejt8fX2+Pr7SljgewAAAKpJREFUGBkFwQNCAwAAAMDLtl3LtrG4rWXbtvX77gAgZ6grFwC0bhwNVgKgdPZx8b0dgLi+s7Wn0VoAqpfOI9+BNADZI7fLrz2pSEwGHZuH+78lSK8ZLkLezF3ooyUG3VPXq2USei9WngeyoG195yBYWDF3E/2pAhl1e9Gr8bGT+bfOFCC2fnvh4X7rcqIAQNNu+HT6sxkAjceTL/2ZAIhv+PorBwBJxfkA//dFHSCBy/UTAAAAAElFTkSuQmCC);background-image:url(/resources/src/mediawiki.action/images/green-checkmark.png?9048a)!ie;background-position:left}.postedit-close{position:absolute;padding:0 .8em;right:0;top:0;font-size:1.25em;font-weight:bold;line-height:2.3em;color:black;text-shadow:0 0.0625em 0 white;text-decoration:none;opacity:0.2;filter:alpha(opacity=20)}.postedit-close:hover{color:black;text-decoration:none;opacity:0.4;filter:alpha(opacity=40)}</style><style>
.suggestions a.mw-searchSuggest-link,.suggestions a.mw-searchSuggest-link:hover,.suggestions a.mw-searchSuggest-link:active,.suggestions a.mw-searchSuggest-link:focus{color:black;text-decoration:none}.suggestions-result-current a.mw-searchSuggest-link,.suggestions-result-current a.mw-searchSuggest-link:hover,.suggestions-result-current a.mw-searchSuggest-link:active,.suggestions-result-current a.mw-searchSuggest-link:focus{color:white}.suggestions a.mw-searchSuggest-link .special-query{ overflow:hidden;-o-text-overflow:ellipsis; text-overflow:ellipsis;white-space:nowrap}</style><meta name="ResourceLoaderDynamicStyles" content="">
<style>a:lang(ar),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none}</style>
<script async="" src="./CDT-9.0_files/load(1).php"></script>
<meta name="generator" content="MediaWiki 1.26.4">
<link rel="shortcut icon" href="https://wiki.eclipse.org/eclipse.org-common/themes/solstice/public/images/favicon.ico">
<link rel="search" type="application/opensearchdescription+xml" href="https://wiki.eclipse.org/opensearch_desc.php" title="Eclipsepedia (en)">
<link rel="EditURI" type="application/rsd+xml" href="https://wiki.eclipse.org/api.php?action=rsd">
<link rel="alternate" type="application/atom+xml" title="Eclipsepedia Atom feed" href="https://wiki.eclipse.org/index.php?title=Special:RecentChanges&amp;feed=atom">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="./CDT-9.0_files/load(2).php"></script><style></style><script async="" src="./CDT-9.0_files/js(1)"></script><meta http-equiv="origin-trial" content="A7bG5hJ4XpMV5a3V1wwAR0PalkFSxLOZeL9D/YBYdupYUIgUgGhfVJ1zBFOqGybb7gRhswfJ+AmO7S2rNK2IOwkAAAB7eyJvcmlnaW4iOiJodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbTo0NDMiLCJmZWF0dXJlIjoiUHJpdmFjeVNhbmRib3hBZHNBUElzIiwiZXhwaXJ5IjoxNjY5NzY2Mzk5LCJpc1RoaXJkUGFydHkiOnRydWV9"><script type="text/javascript" async="" src="./CDT-9.0_files/f(1).txt"></script></head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-CDT_User_NewIn90 skin-solstice action-view" id="solstice"><div class="cc-revoke cc-bottom cc-animate cc-color-override-1434350510" style="">Cookie settings</div><div role="dialog" aria-live="polite" aria-label="cookieconsent" aria-describedby="cookieconsent:desc" class="cc-window cc-banner cc-type-opt-in cc-theme-block cc-bottom cc-color-override-1434350510 cc-invisible" style="display: none;"><!--googleoff: all--><span id="cookieconsent:desc" class="cc-message">Some Eclipse Foundation pages use cookies to better serve you when you return to the site. You can set your browser to notify you before you receive a cookie or turn off cookies. If you do so, however, some areas of some sites may not function properly. To read Eclipse Foundation Privacy Policy <a aria-label="learn more about cookies" role="button" tabindex="0" class="cc-link" href="https://www.eclipse.org/legal/privacy.php" rel="noopener noreferrer nofollow" target="_blank">click here.</a></span><div class="cc-compliance cc-highlight"><a aria-label="deny cookies" role="button" tabindex="0" class="cc-btn cc-deny">Decline</a><a aria-label="allow cookies" role="button" tabindex="0" class="cc-btn cc-allow">Allow cookies</a></div><!--googleon: all--></div><style type="text/css">html.hs-messages-widget-open.hs-messages-mobile,html.hs-messages-widget-open.hs-messages-mobile body{overflow:hidden!important;position:relative!important}html.hs-messages-widget-open.hs-messages-mobile body{height:100%!important;margin:0!important}#hubspot-messages-iframe-container{display:initial!important;z-index:2147483647;position:fixed!important;bottom:0!important}#hubspot-messages-iframe-container.widget-align-left{left:0!important}#hubspot-messages-iframe-container.widget-align-right{right:0!important}#hubspot-messages-iframe-container.internal{z-index:1016}#hubspot-messages-iframe-container.internal iframe{min-width:108px}#hubspot-messages-iframe-container .shadow-container{display:initial!important;z-index:-1;position:absolute;width:0;height:0;bottom:0;content:""}#hubspot-messages-iframe-container .shadow-container.internal{display:none!important}#hubspot-messages-iframe-container .shadow-container.active{width:400px;height:400px}#hubspot-messages-iframe-container iframe{display:initial!important;width:100%!important;height:100%!important;border:none!important;position:absolute!important;bottom:0!important;right:0!important;background:transparent!important}</style>
<a class="sr-only" href="https://wiki.eclipse.org/CDT/User/NewIn90#content">Skip to main content</a>
<header class="header-wrapper" id="header-wrapper">
<div class="clearfix toolbar-container-wrapper">
<div class="container-fluid">
<div class="text-right toolbar-row row hidden-print">
<div class="col-md-24 row-toolbar-col">
<ul class="list-inline">
<li id="pt-login">
<a href="https://wiki.eclipse.org/index.php?title=Special:UserLogin&amp;returnto=CDT%2FUser%2FNewIn90" class="toolbar-link toolbar-login">
<i class="fa fa-sign-in fa-fw"></i> Log in </a>
</li>
<li><a class="toolbar-link toolbar-manage-cookies dropdown-toggle"><i class="fa fa-wrench"></i> Manage Cookies</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row" id="header-row">
<div class="col-sm-5 col-md-4" id="header-left">
<div class="wrapper-logo-default"><a href="https://www.eclipse.org/"><img class="logo-eclipse-default hidden-xs" alt="Eclipse.org logo" width="160" src="./CDT-9.0_files/eclipse-foundation-white-orange.svg"></a></div>
</div>
<div class="col-sm-19 col-md-20 margin-top-10" id="main-menu-wrapper">
<div class="float-right hidden-xs" id="btn-call-for-action"><a href="https://eclipse.org/downloads/" class="btn btn-huge btn-warning"><i class="fa fa-download"></i> Download</a></div>
<div class="navbar yamm float-sm-right" id="main-menu">
<div class="navbar-collapse collapse" id="navbar-main-menu">
<ul class="nav navbar-nav">
<li><a href="https://www.eclipse.org/projects/" target="_self">Projects</a></li>
<li><a href="https://www.eclipse.org/org/workinggroups/" target="_self">Working Groups</a></li>
<li><a href="https://www.eclipse.org/membership/" target="_self">Members</a></li>
<li class="dropdown visible-xs">
<a href="https://wiki.eclipse.org/CDT/User/NewIn90#" data-toggle="dropdown" class="dropdown-toggle">Community <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="http://marketplace.eclipse.org/">Marketplace</a></li>
<li><a href="http://events.eclipse.org/">Events</a></li>
<li><a href="http://www.planeteclipse.org/">Planet Eclipse</a></li>
<li><a href="https://www.eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
<li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
<li><a href="https://blogs.eclipse.org/">Blogs</a></li>
</ul>
</li>
<li class="dropdown visible-xs">
<a href="https://wiki.eclipse.org/CDT/User/NewIn90#" data-toggle="dropdown" class="dropdown-toggle">Participate <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
<li><a href="https://www.eclipse.org/forums/">Forums</a></li>
<li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
<li><a href="https://wiki.eclipse.org/">Wiki</a></li>
<li><a href="https://wiki.eclipse.org/IRC">IRC</a></li>
<li><a href="https://www.eclipse.org/org/research/">Research</a></li>
</ul>
</li>
<li class="dropdown visible-xs">
<a href="https://wiki.eclipse.org/CDT/User/NewIn90#" data-toggle="dropdown" class="dropdown-toggle">Eclipse IDE <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="https://www.eclipse.org/downloads">Download</a></li>
<li><a href="https://www.eclipse.org/eclipseide">Learn More</a></li>
<li><a href="https://help.eclipse.org/">Documentation</a></li>
<li><a href="https://www.eclipse.org/getting_started">Getting Started / Support</a></li>
<li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
<li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
<li><a href="https://www.eclipse.org/forums/index.php/f/89/">Newcomer Forum</a></li>
</ul>
</li>
<!-- More -->
<li class="dropdown eclipse-more hidden-xs">
<a data-toggle="dropdown" class="dropdown-toggle" role="button">More<b class="caret"></b></a>
<ul class="dropdown-menu">
<li>
<!-- Content container to add padding -->
<div class="yamm-content">
<div class="row">
<ul class="col-sm-8 list-unstyled">
<li>
<p><strong>Community</strong></p>
</li>
<li><a href="http://marketplace.eclipse.org/">Marketplace</a></li>
<li><a href="http://events.eclipse.org/">Events</a></li>
<li><a href="http://www.planeteclipse.org/">Planet Eclipse</a></li>
<li><a href="https://www.eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
<li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
<li><a href="https://blogs.eclipse.org/">Blogs</a></li>
</ul>
<ul class="col-sm-8 list-unstyled">
<li>
<p><strong>Participate</strong></p>
</li>
<li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
<li><a href="https://www.eclipse.org/forums/">Forums</a></li>
<li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
<li><a href="https://wiki.eclipse.org/">Wiki</a></li>
<li><a href="https://wiki.eclipse.org/IRC">IRC</a></li>
<li><a href="https://www.eclipse.org/org/research/">Research</a></li>
</ul>
<ul class="col-sm-8 list-unstyled">
<li>
<p><strong>Eclipse IDE</strong></p>
</li>
<li><a href="https://www.eclipse.org/downloads">Download</a></li>
<li><a href="https://www.eclipse.org/eclipseide">Learn More</a></li>
<li><a href="https://help.eclipse.org/">Documentation</a></li>
<li><a href="https://www.eclipse.org/getting_started">Getting Started / Support</a></li>
<li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
<li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
<li><a href="https://www.eclipse.org/forums/index.php/f/89/">Newcomer Forum</a></li>
</ul>
</div>
</div>
</li>
</ul>
</li>
</ul>
</div>
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-main-menu">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="wrapper-logo-mobile"><a class="navbar-brand visible-xs" href="https://www.eclipse.org/"><img class="logo-eclipse-default-mobile img-responsive" alt="Eclipse.org logo" width="160" src="./CDT-9.0_files/eclipse-foundation-white-orange.svg"></a></div>
</div>
</div>
</div>
</div>
</div>
</header>
<section class="default-breadcrumbs hidden-print" id="breadcrumb">
<div class="container-fluid">
<h3 class="sr-only">Breadcrumbs</h3>
<div class="row">
<div class="col-sm-24">
<ol class="breadcrumb">
<li><a href="https://www.eclipse.org/">Home</a></li>
<li><a href="https://wiki.eclipse.org/Main_Page">Eclipse Wiki</a></li>
<li class="active">CDT/User/NewIn90</li>
</ol>
</div>
</div>
</div>
</section>
<!-- /#breadcrumb -->
<main>
<div class="container-fluid padding-15 padding-top-20">
<!-- content -->
<section id="content" class="mw-body container-full clearfix 0">
<div id="mw-js-message" style="display:none;"></div>
<!-- bodyContent -->
<div id="bodyContent">
<!-- jumpto -->
<div id="jump-to-nav" class="mw-jump">
Jump to: <a href="https://wiki.eclipse.org/CDT/User/NewIn90#mw-head">navigation</a>,
<a href="https://wiki.eclipse.org/CDT/User/NewIn90#p-search">search</a>
</div>
<!-- /jumpto -->
<!-- leftcol -->
<aside class="col-md-4 noprint hidden-print" id="leftcol">
<form class="input-group" role="form" id="form-eclipse-search" action="https://wiki.eclipse.org/index.php">
<input id="searchInput" class="search-query form-control" type="search" accesskey="f" title="Special:Search [alt-shift-f]" placeholder="Search" name="search" value="" autocomplete="off">
<span class="input-group-btn">
<button value="search" id="mw-searchButton" type="submit" class="btn btn-default" title="Search the pages for this text" name="fulltext">
<i class="fa fa-search"></i>
</button>
</span>
</form>
<select class="form-control margin-top-10 margin-bottom-10 visible-xs visible-sm" onchange="this.options[this.selectedIndex].value &amp;&amp; (window.location = this.options[this.selectedIndex].value);"><option class="fw-700 ">---Navigation---</option><option value="/Main_Page">Main Page</option><option value="/Eclipsepedia:Community_portal">Community portal</option><option value="/Eclipsepedia:Current_events">Current events</option><option value="/Special:RecentChanges">Recent changes</option><option value="/Special:Random">Random page</option><option value="https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents">Help</option></select><ul class="ul-left-nav fa-ul hidden-print leftnav hidden-xs hidden-sm"><li class="separator"><span class="separator">Navigation</span></li> <li class=""><i class="fa fa-angle-double-right orange fa-fw"></i> <a href="https://wiki.eclipse.org/Main_Page" id="n-mainpage" title="Visit the main page [alt-shift-z]" accesskey="z">Main Page</a></li> <li class=""><i class="fa fa-angle-double-right orange fa-fw"></i> <a href="https://wiki.eclipse.org/Eclipsepedia:Community_portal" id="n-portal" title="About the project, what you can do, where to find things">Community portal</a></li> <li class=""><i class="fa fa-angle-double-right orange fa-fw"></i> <a href="https://wiki.eclipse.org/Eclipsepedia:Current_events" id="n-currentevents" title="Find background information on current events">Current events</a></li> <li class=""><i class="fa fa-angle-double-right orange fa-fw"></i> <a href="https://wiki.eclipse.org/Special:RecentChanges" id="n-recentchanges" title="A list of recent changes in the wiki [alt-shift-r]" accesskey="r">Recent changes</a></li> <li class=""><i class="fa fa-angle-double-right orange fa-fw"></i> <a href="https://wiki.eclipse.org/Special:Random" id="n-randompage" title="Load a random page [alt-shift-x]" accesskey="x">Random page</a></li> <li class=""><i class="fa fa-angle-double-right orange fa-fw"></i> <a href="https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents" id="n-help" title="The place to find out">Help</a></li></ul> <select class="form-control margin-top-10 margin-bottom-10 visible-xs visible-sm" onchange="this.options[this.selectedIndex].value &amp;&amp; (window.location = this.options[this.selectedIndex].value);"><option class="fw-700 ">---Toolbox---</option><option value="/index.php?title=CDT/User/NewIn90&amp;action=info">Page information</option><option value="/index.php?title=CDT/User/NewIn90&amp;oldid=420097">Permanent link</option><option value="/index.php?title=CDT/User/NewIn90&amp;printable=yes">Printable version</option><option value="/Special:SpecialPages">Special pages</option><option value="/Special:RecentChangesLinked/CDT/User/NewIn90">Related changes</option><option value="/Special:WhatLinksHere/CDT/User/NewIn90">What links here</option></select><ul class="ul-left-nav fa-ul hidden-print leftnav hidden-xs hidden-sm"><li class="separator"><span class="separator">Toolbox</span></li><li><i class="fa fa-angle-double-right orange fa-fw"></i> <a href="https://wiki.eclipse.org/index.php?title=CDT/User/NewIn90&amp;action=info" id="t-info" title="More information about this page">Page information</a></li><li><i class="fa fa-angle-double-right orange fa-fw"></i> <a href="https://wiki.eclipse.org/index.php?title=CDT/User/NewIn90&amp;oldid=420097" id="t-permalink" title="Permanent link to this revision of the page">Permanent link</a></li><li><i class="fa fa-angle-double-right orange fa-fw"></i> <a href="https://wiki.eclipse.org/index.php?title=CDT/User/NewIn90&amp;printable=yes" id="t-print" rel="alternate" title="Printable version of this page [alt-shift-p]" accesskey="p">Printable version</a></li><li><i class="fa fa-angle-double-right orange fa-fw"></i> <a href="https://wiki.eclipse.org/Special:SpecialPages" id="t-specialpages" title="A list of all special pages [alt-shift-q]" accesskey="q">Special pages</a></li><li><i class="fa fa-angle-double-right orange fa-fw"></i> <a href="https://wiki.eclipse.org/Special:RecentChangesLinked/CDT/User/NewIn90" id="t-recentchangeslinked" title="Recent changes in pages linked from this page [alt-shift-k]" accesskey="k">Related changes</a></li><li><i class="fa fa-angle-double-right orange fa-fw"></i> <a href="https://wiki.eclipse.org/Special:WhatLinksHere/CDT/User/NewIn90" id="t-whatlinkshere" title="A list of all wiki pages that link here [alt-shift-j]" accesskey="j">What links here</a></li></ul> </aside>
<!-- /leftcol -->
<!-- mainContent -->
<div id="mainContent" class="col-md-20">
<ul class="nav nav-tabs noprint hidden-print" role="tablist">
<li id="ca-nstab-main" class="active"><a href="https://wiki.eclipse.org/CDT/User/NewIn90" title="View the content page [alt-shift-c]" accesskey="c" tabindex="-1">Page</a></li>
<li id="ca-talk" class="new"><a href="https://wiki.eclipse.org/index.php?title=Talk:CDT/User/NewIn90&amp;action=edit&amp;redlink=1" title="Discussion about the content page [alt-shift-t]" accesskey="t" tabindex="-1">Discussion</a></li>
<li id="ca-viewsource"><a href="https://wiki.eclipse.org/index.php?title=CDT/User/NewIn90&amp;action=edit" title="This page is protected.
You can view its source [alt-shift-e]" accesskey="e" tabindex="-1">View source</a></li>
<li id="ca-history" class="collapsible"><a href="https://wiki.eclipse.org/index.php?title=CDT/User/NewIn90&amp;action=history" title="Past revisions of this page [alt-shift-h]" accesskey="h" tabindex="-1">History</a></li>
</ul> <div class="tab-content background-white">
<div id="tab-pane-main-page-content" class="tab-pane active">
<h1 id="firstHeading" class="firstHeading page-header">
<span dir="auto">CDT/User/NewIn90</span>
</h1>
<div id="main-page-content">
<!-- subtitle -->
<div id="contentSub" class="alert alert-small alert-warning"><span class="subpages">&lt; <a href="https://wiki.eclipse.org/CDT" title="CDT">CDT</a></span></div>
<!-- /subtitle -->
<div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2><span class="toctoggle">&nbsp;[<a href="https://wiki.eclipse.org/CDT/User/NewIn90#" id="togglelink">hide</a>]&nbsp;</span></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Release"><span class="tocnumber">1</span> <span class="toctext">Release</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#General"><span class="tocnumber">2</span> <span class="toctext">General</span></a></li>
<li class="toclevel-1 tocsection-3"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Editor"><span class="tocnumber">3</span> <span class="toctext">Editor</span></a>
<ul>
<li class="toclevel-2 tocsection-4"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Create_New_Class_-_Quick_Fix"><span class="tocnumber">3.1</span> <span class="toctext">Create New Class - Quick Fix</span></a></li>
<li class="toclevel-2 tocsection-5"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Format_Edited_Lines_-_Save_Action"><span class="tocnumber">3.2</span> <span class="toctext">Format Edited Lines - Save Action</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-6"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Makefile_Editor"><span class="tocnumber">4</span> <span class="toctext">Makefile Editor</span></a></li>
<li class="toclevel-1 tocsection-7"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Code_Analysis"><span class="tocnumber">5</span> <span class="toctext">Code Analysis</span></a>
<ul>
<li class="toclevel-2 tocsection-8"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Suppressions_in_code"><span class="tocnumber">5.1</span> <span class="toctext">Suppressions in code</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-9"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Parser"><span class="tocnumber">6</span> <span class="toctext">Parser</span></a></li>
<li class="toclevel-1 tocsection-10"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Build"><span class="tocnumber">7</span> <span class="toctext">Build</span></a></li>
<li class="toclevel-1 tocsection-11"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Debug"><span class="tocnumber">8</span> <span class="toctext">Debug</span></a>
<ul>
<li class="toclevel-2 tocsection-12"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Gdbserver_options"><span class="tocnumber">8.1</span> <span class="toctext">Gdbserver options</span></a></li>
<li class="toclevel-2 tocsection-13"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#OS_Resources_View"><span class="tocnumber">8.2</span> <span class="toctext">OS Resources View</span></a>
<ul>
<li class="toclevel-3 tocsection-14"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Attach_to_selected_processes"><span class="tocnumber">8.2.1</span> <span class="toctext">Attach to selected processes</span></a></li>
<li class="toclevel-3 tocsection-15"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Copy_to_clipboard"><span class="tocnumber">8.2.2</span> <span class="toctext">Copy to clipboard</span></a></li>
</ul>
</li>
<li class="toclevel-2 tocsection-16"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Connect_button_removed_from_Debug_toolbar"><span class="tocnumber">8.3</span> <span class="toctext">Connect button removed from Debug toolbar</span></a></li>
<li class="toclevel-2 tocsection-17"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Button_to_create_a_new_process_removed_from_Connect_dialogue"><span class="tocnumber">8.4</span> <span class="toctext">Button to create a new process removed from Connect dialogue</span></a></li>
<li class="toclevel-2 tocsection-18"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#.22Go_to_Address.22_platform_action_added_to_the_Traditional_Rendering_context_menu"><span class="tocnumber">8.5</span> <span class="toctext">"Go to Address" platform action added to the Traditional Rendering context menu</span></a></li>
<li class="toclevel-2 tocsection-19"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Connecting_to_process.28es.29_-_errors_are_now_being_propagated_to_the_user"><span class="tocnumber">8.6</span> <span class="toctext">Connecting to process(es) - errors are now being propagated to the user</span></a></li>
<li class="toclevel-2 tocsection-20"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Breakpoint_Actions:_Debugger_Commands"><span class="tocnumber">8.7</span> <span class="toctext">Breakpoint Actions: Debugger Commands</span></a></li>
<li class="toclevel-2 tocsection-21"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Disassembly_View_Hover_now_interprets_registers"><span class="tocnumber">8.8</span> <span class="toctext">Disassembly View Hover now interprets registers</span></a></li>
<li class="toclevel-2 tocsection-22"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Traditional_Render_for_memory_views_-_support_background_color_per_memory_space"><span class="tocnumber">8.9</span> <span class="toctext">Traditional Render for memory views - support background color per memory space</span></a></li>
<li class="toclevel-2 tocsection-23"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Improved_Source_Lookup_Path_Mapping"><span class="tocnumber">8.10</span> <span class="toctext">Improved Source Lookup Path Mapping</span></a></li>
<li class="toclevel-2 tocsection-24"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Support_for_Hardware_Reverse_Debugging"><span class="tocnumber">8.11</span> <span class="toctext">Support for Hardware Reverse Debugging</span></a></li>
<li class="toclevel-2 tocsection-25"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Support_for_.22Stop_at_startup.22_options_in_.22Debug_New_Executable.22_dialog"><span class="tocnumber">8.12</span> <span class="toctext">Support for "Stop at startup" options in "Debug New Executable" dialog</span></a></li>
<li class="toclevel-2 tocsection-26"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Support_for_Hovering_in_the_traditional_memory_render"><span class="tocnumber">8.13</span> <span class="toctext">Support for Hovering in the traditional memory render</span></a></li>
<li class="toclevel-2 tocsection-27"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Show_local_Variables_and_Registers_in_the_traditional_memory_render"><span class="tocnumber">8.14</span> <span class="toctext">Show local Variables and Registers in the traditional memory render</span></a></li>
<li class="toclevel-2 tocsection-28"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Removal_of_support_for_the_old_Apple_GDB"><span class="tocnumber">8.15</span> <span class="toctext">Removal of support for the old Apple GDB</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-29"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#Bugs_Fixed_in_this_Release"><span class="tocnumber">9</span> <span class="toctext">Bugs Fixed in this Release</span></a></li>
<li class="toclevel-1 tocsection-30"><a href="https://wiki.eclipse.org/CDT/User/NewIn90#API_modifications"><span class="tocnumber">10</span> <span class="toctext">API modifications</span></a></li>
</ul>
</div>
<h2><span class="mw-headline" id="Release">Release</span></h2>
<ul><li> This is the New &amp; Noteworthy page for CDT 9.0 which is part of the Eclipse Neon release of June 2016</li></ul>
<h2><span class="mw-headline" id="General">General</span></h2>
<ul><li> Is is now possible to convert an existing C project to a C++ project (adds C++ nature). To do this, the existing wizard 'Convert to a C/C++ project' can now be used on C projects whereas before it could only be used on non-CDT projects.</li></ul>
<h2><span class="mw-headline" id="Editor">Editor</span></h2>
<h3><span class="mw-headline" id="Create_New_Class_-_Quick_Fix">Create New Class - Quick Fix</span></h3>
<p>In C++ files if "Type not found" error is detected, there is a new quick fix now to create a class based on that type, which opens "New C++ Class Wizard".
Note: to enable quick user must enable "Type cannot be resolved" problem in "Code Analysis" settings
</p><p><a href="https://wiki.eclipse.org/File:CPPnewClass.png" class="image"><img alt="CPPnewClass.png" src="./CDT-9.0_files/CPPnewClass.png" width="411" height="191"></a>
</p><p>This feature was completed through <a rel="nofollow" class="external text" href="http://eclip.se/411579">Bug 411579</a>
</p>
<h3><span class="mw-headline" id="Format_Edited_Lines_-_Save_Action">Format Edited Lines - Save Action</span></h3>
<p>It is now possible to format either the whole file or only the edited lines when a source or a header file is saved.
</p><p><a href="https://wiki.eclipse.org/File:Save_Actions.png" class="image"><img alt="Save Actions.png" src="./CDT-9.0_files/Save_Actions.png" width="428" height="298"></a>
</p>
<h2><span class="mw-headline" id="Makefile_Editor">Makefile Editor</span></h2>
<ul><li> Makefile Editor now provides a *single* key Ctrl+/ to toggle comments rather than have Ctrl+/ to comment and Ctrl+\ to uncomment. This is consistent with CDT and Java editors. See <a rel="nofollow" class="external text" href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=485028">Bug-485028</a></li></ul>
<h2><span class="mw-headline" id="Code_Analysis">Code Analysis</span></h2>
<h3><span class="mw-headline" id="Suppressions_in_code">Suppressions in code</span></h3>
<p>It is now possible to suppress code analysis errors/warnings by adding comments in the code.
</p>
<pre> x = x; // @suppress("statement has no effect") because I know better
</pre>
<p>The comment is actually configurable using problem parameters (@suppress(&lt;title&gt;) is default), you could have named it "--ignore--" and it would have been
like
</p>
<pre> x = x; // --ignore--
</pre>
<p>This feature was completed through <a rel="nofollow" class="external text" href="http://eclip.se/383576">Bug 383576</a>
</p>
<h2><span class="mw-headline" id="Parser">Parser</span></h2>
<h2><span class="mw-headline" id="Build">Build</span></h2>
<ul><li> The "Symbols" settings category (gnu.c.compiler.category.symbols) under "GCC C compiler" has been removed and its content has been merged with the Preprocessor (gnu.c.compiler.category.preprocessor) category. <a rel="nofollow" class="external text" href="http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=d23b3871ff7a5acd5d5bd35755bc762ab324260f">link</a></li></ul>
<h2><span class="mw-headline" id="Debug">Debug</span></h2>
<h3><span class="mw-headline" id="Gdbserver_options">Gdbserver options</span></h3>
<ul><li> For automatic remote debugging sessions, CDT now supports specifying extra options that will be passed to gdbserver when starting it. This way, users could activate debug messages ("--debug"), benefit of wrapper option ("--wrapper") that gdbserver supports or use the other available command-line options of gdbserver.</li></ul>
<p><a href="https://wiki.eclipse.org/File:Gdbserver-settings-tab.PNG" class="image"><img alt="Gdbserver-settings-tab.PNG" src="./CDT-9.0_files/Gdbserver-settings-tab.PNG" width="376" height="269"></a>
</p>
<h3><span class="mw-headline" id="OS_Resources_View">OS Resources View</span></h3>
<h4><span class="mw-headline" id="Attach_to_selected_processes">Attach to selected processes</span></h4>
<p>OS Resources view displays different information about the resources of the operating system, such as list of all processes running on the target or files opened by processes on target.
</p><p>Now it is possible to attach to processes associated with selected resources directly from OS Resources view without resorting to "Connect to a process" button from Debug View.
</p><p><a href="https://wiki.eclipse.org/File:OS_Resources_Attach.JPG" class="image"><img alt="OS Resources Attach.JPG" src="./CDT-9.0_files/OS_Resources_Attach.JPG" width="523" height="371"></a>
</p><p>This feature requires non-stop mode support to be activated.
</p><p>This feature was completed through <a rel="nofollow" class="external text" href="https://bugs.eclipse.org/486521">Bug 486521</a>.
</p>
<h4><span class="mw-headline" id="Copy_to_clipboard">Copy to clipboard</span></h4>
<p>OS Resources View lists a lot of text information. Now it is possible to copy selected lines to clipboard to save for later comparison.
</p>
<h3><span class="mw-headline" id="Connect_button_removed_from_Debug_toolbar">Connect button removed from Debug toolbar</span></h3>
<p>In an effort to reduce clutter, the <i>Connect</i> button was removed from the Debug toolbar. The action is still available from the Debug view context-menu as shown below. Furthermore, connecting to a process can now be done using the OS Resources view as described in <a href="https://wiki.eclipse.org/CDT/User/NewIn90#Attach_to_selected_processes" title="CDT/User/NewIn90"> this section</a>.
</p><p><a href="https://wiki.eclipse.org/File:CDT_Removed_Connect_Button.png" class="image"><img alt="CDT Removed Connect Button.png" src="./CDT-9.0_files/CDT_Removed_Connect_Button.png" width="522" height="672"></a>
</p><p>This feature was completed through <a rel="nofollow" class="external text" href="http://eclip.se/487121">Bug 487121</a>
</p>
<h3><span class="mw-headline" id="Button_to_create_a_new_process_removed_from_Connect_dialogue">Button to create a new process removed from Connect dialogue</span></h3>
<p>To streamline the UI, the "New..." button of the Connect dialogue which was used to create a new process has been removed. This action is available instead from the Debug view context-menu as shown below.
</p><p><a href="https://wiki.eclipse.org/File:CDT_RemoveNewButton.png" class="image"><img alt="CDT RemoveNewButton.png" src="./CDT-9.0_files/CDT_RemoveNewButton.png" width="1024" height="720"></a>
</p><p>This feature was completed through <a rel="nofollow" class="external text" href="http://eclip.se/488950">Bug 488950</a>
</p>
<h3><span class="mw-headline" id=".22Go_to_Address.22_platform_action_added_to_the_Traditional_Rendering_context_menu">"Go to Address" platform action added to the Traditional Rendering context menu</span></h3>
<p>Some of the other memory renderings already had this action, and it seemed that the traditional rendering could use it too.
</p><p><a href="https://wiki.eclipse.org/File:CDTGoToAddressActionTraditionalRender.png" class="image"><img alt="CDTGoToAddressActionTraditionalRender.png" src="./CDT-9.0_files/CDTGoToAddressActionTraditionalRender.png" width="899" height="602"></a>
</p><p>This feature was completed through <a rel="nofollow" class="external text" href="http://eclip.se/488950">Bug 488950</a>
</p><p><br>
</p>
<h3><span class="mw-headline" id="Connecting_to_process.28es.29_-_errors_are_now_being_propagated_to_the_user">Connecting to process(es) - errors are now being propagated to the user</span></h3>
<p>When connecting (attaching) to one or more processes, if one or more failed, the failure would be silent. With this enhancement in place, any errors will be collected and presented to the user, in a single dialog. For example here, errors are being reported for 3 failed connections:
</p><p><a href="https://wiki.eclipse.org/File:ConnectToProcess-ErrorsPropagetedToUser.png" class="image"><img alt="ConnectToProcess-ErrorsPropagetedToUser.png" src="./CDT-9.0_files/ConnectToProcess-ErrorsPropagetedToUser.png" width="614" height="480"></a>
</p><p>This feature was completed through <a rel="nofollow" class="external text" href="http://eclip.se/487128">Bug 487128</a>
</p>
<h3><span class="mw-headline" id="Breakpoint_Actions:_Debugger_Commands">Breakpoint Actions: Debugger Commands</span></h3>
<p>New breakpoint action added - debugger command. Now when breakpoint is hit you can execute arbitrary debugger command supported by command line debugger interface (including "continue"). This is currently not intended for sophisticated scripts, since all data stored in workspace and you cannot share it, however you can create a script, save it in a file and command you executing when breakpoint hit will be the command to execute the script. Note that in this case IDE may get out of sync if you using stepping commands inside the script.
</p><p><a href="https://wiki.eclipse.org/File:DebugCommand-New.png" class="image"><img alt="DebugCommand-New.png" src="./CDT-9.0_files/DebugCommand-New.png" width="500" height="375"></a>
</p><p>This feature was completed through <a rel="nofollow" class="external text" href="http://eclip.se/489455">Bug 489455</a>
</p><p><br>
</p>
<h3><span class="mw-headline" id="Disassembly_View_Hover_now_interprets_registers">Disassembly View Hover now interprets registers</span></h3>
<p>Hover has been implemented in the Disassembly View, for registers. Previously, any String being hovered would be interpreted as a gdb expression. Depending on the assembly syntax, it might resolve as a register on some platforms, but not on others. Now there is an attempt to interpret what is being hovered as a register first, and if it does not resolve then as an expression.
</p><p><a href="https://wiki.eclipse.org/File:Cdt-disassembly-register-hover.png" class="image"><img alt="Cdt-disassembly-register-hover.png" src="./CDT-9.0_files/Cdt-disassembly-register-hover.png" width="1074" height="448"></a>
</p><p>This feature was completed through <a rel="nofollow" class="external text" href="http://eclip.se/489278">Bug 489278</a>
</p>
<h3><span class="mw-headline" id="Traditional_Render_for_memory_views_-_support_background_color_per_memory_space">Traditional Render for memory views - support background color per memory space</span></h3>
<p>In the Memory and Memory Browser views, one can use the CDT Traditional Render. In that render, a preference is defined to define the view's background color. This enhancement permits to define the background color independently for each memory space, for systems that support those. This makes it very easy to know, with one look, which memory space we are looking-at.
</p><p>A few sane default colors have been defined, for the eventual first few memory spaces present on a system. The user can customize those colors, or disable this feature by checking the "Use Global Background Color" checkbox:
</p><p><a href="https://wiki.eclipse.org/File:Cdt-traditional-render-prefs-mem-space-background-color.png" class="image"><img alt="Cdt-traditional-render-prefs-mem-space-background-color.png" src="./CDT-9.0_files/Cdt-traditional-render-prefs-mem-space-background-color.png" width="701" height="608"></a>
</p><p>This feature was completed through <a rel="nofollow" class="external text" href="http://eclip.se/488469">Bug 488469</a>
</p>
<h3><span class="mw-headline" id="Improved_Source_Lookup_Path_Mapping">Improved Source Lookup Path Mapping</span></h3>
<p>The source lookup feature for path mappings has been reworked in this release to improve support for relocated projects, cross-platform support, dealing with non-canonical paths (paths containing '..') and fixing source lookup bugs. The new implementation uses the GDB feature "substitute-path" to allow the debugger backend to directly perform the mapping of the source path to the actual location. The new debugger backend implementation is enabled by default, but the user has the option to disable the functionality on a case-by-case basis if needed. As a result CDT now offers better support for finding source files for relocated projects on all platforms, including MinGW and Cygwin on Windows.
</p><p><a href="https://wiki.eclipse.org/File:Source-mapping.png" class="image"><img alt="Source-mapping.png" src="./CDT-9.0_files/Source-mapping.png" width="646" height="456"></a>
</p><p>This feature was completed through <a rel="nofollow" class="external text" href="http://eclip.se/472765">Bug 472765</a>
Read more about the improved source lookup path mapping in this <a rel="nofollow" class="external text" href="https://kichwacoders.com/2016/04/12/improved-cdt-source-lookup-path-mappings-in-neon/">blogpost</a>.
</p>
<h3><span class="mw-headline" id="Support_for_Hardware_Reverse_Debugging">Support for Hardware Reverse Debugging</span></h3>
<p>Earlier only software based Reverse Debugging could be selected from CDT. Now hardware based reverse debugging
methods can be enabled from the GUI. Of course this requires support from underlying hardware, debugger and kernel. When available, hardware reverse debugging is dramatically faster than the software version. However it is less detailed (variables are usually not available).
A list of reverse debugging methods have been added to the Toggle Reverse Debugging button as shown below
</p><p><a href="https://wiki.eclipse.org/File:Toolbar.jpg" class="image"><img alt="Toolbar.jpg" src="./CDT-9.0_files/Toolbar.jpg" width="772" height="118"></a>
</p><p>To enable a specific method, it needs to be selected from the list. The Toggle Reverse Debugging button can then
be used to toggle the chosen Reverse Debugging method. The selection can also be made in the Launch Configuration dialog:
</p><p><a href="https://wiki.eclipse.org/File:Launcher.jpg" class="image"><img alt="Launcher.jpg" src="./CDT-9.0_files/Launcher.jpg" width="708" height="236"></a>
</p><p>The specific hardware technology to use for Hardware reverse debugging can be chosen from the preference menu.
</p><p><a href="https://wiki.eclipse.org/File:Preference.jpg" class="image"><img alt="Preference.jpg" src="./CDT-9.0_files/Preference.jpg" width="770" height="384"></a>
</p>
<h3><span class="mw-headline" id="Support_for_.22Stop_at_startup.22_options_in_.22Debug_New_Executable.22_dialog">Support for "Stop at startup" options in "Debug New Executable" dialog</span></h3>
<p>This feature allows users to specify the "Stop at startup" options when adding a new executable to a running debug session.
</p><p><a href="https://wiki.eclipse.org/File:StopAtStartup.png" class="image"><img alt="StopAtStartup.png" src="./CDT-9.0_files/StopAtStartup.png" width="632" height="347"></a>
</p>
<h3><span class="mw-headline" id="Support_for_Hovering_in_the_traditional_memory_render">Support for Hovering in the traditional memory render</span></h3>
<p>The hovering box displays the memory address corresponding to the hovering location
</p><p><a href="https://wiki.eclipse.org/File:TraditionalRenderHovering.png" class="image"><img alt="TraditionalRenderHovering.png" src="./CDT-9.0_files/TraditionalRenderHovering.png" width="644" height="249"></a>
</p><p>This feature was completed through <a rel="nofollow" class="external text" href="http://eclip.se/489505">Bug 489505</a>
</p>
<h3><span class="mw-headline" id="Show_local_Variables_and_Registers_in_the_traditional_memory_render">Show local Variables and Registers in the traditional memory render</span></h3>
<p>It is now possible to visualize local variables and registers when using the traditional memory render,
this render is available in the Memory browser view as well as in the Memory view.
</p><p>NOTE: Registers are shown when it's value corresponds to a memory address being visualized, currently CDT has no knowledge of the purpose of the actual registers in the target systems.
</p><p>The following picture shows how to locate a local variable in the stack
</p><p><a href="https://wiki.eclipse.org/File:Variables.png" class="image"><img alt="Variables.png" src="./CDT-9.0_files/Variables.png" width="847" height="419"></a>
</p><p>The following picture shows how a pointer local variable is presented in the data pane when is dereferenced
</p><p><a href="https://wiki.eclipse.org/File:PointerVars.png" class="image"><img alt="PointerVars.png" src="./CDT-9.0_files/PointerVars.png" width="847" height="419"></a>
</p><p>Using an expression in the memory browser view to find the location of the stack and visualize local variables and registers
</p><p><a href="https://wiki.eclipse.org/File:StackPointerExpr.png" class="image"><img alt="StackPointerExpr.png" src="./CDT-9.0_files/StackPointerExpr.png" width="847" height="419"></a>
</p><p>Hovering over a start address where a variable and a register are pointing to
</p><p><a href="https://wiki.eclipse.org/File:HoveringOverStartAddressWithInfo.png" class="image"><img alt="HoveringOverStartAddressWithInfo.png" src="./CDT-9.0_files/HoveringOverStartAddressWithInfo.png" width="847" height="419"></a>
</p><p>It is possible to disable the presentation of variables and/or registers via the context menu, this apply individually to each traditional render instance
</p><p><a href="https://wiki.eclipse.org/File:TraditionalRenderContextCrossRef.png" class="image"><img alt="TraditionalRenderContextCrossRef.png" src="./CDT-9.0_files/TraditionalRenderContextCrossRef.png" width="489" height="203"></a>
</p><p>It is possible to disable the presentation of all memory cross reference information for all traditional renders and be preserved via the Traditional Memory Rendering Preferences "Show cross reference information"
</p><p><a href="https://wiki.eclipse.org/File:ShowCrossReferenceInformation.png" class="image"><img alt="ShowCrossReferenceInformation.png" src="./CDT-9.0_files/ShowCrossReferenceInformation.png" width="634" height="654"></a>
</p><p>This feature was completed through <a rel="nofollow" class="external text" href="http://eclip.se/489512">Bug 489512</a>, <a rel="nofollow" class="external text" href="http://eclip.se/489513">Bug 489513</a>, <a rel="nofollow" class="external text" href="http://eclip.se/489516">Bug 489516</a>
</p>
<h3><span class="mw-headline" id="Removal_of_support_for_the_old_Apple_GDB">Removal of support for the old Apple GDB</span></h3>
<p>Apple used to have their own version of GDB which was released with Xcode. Apple no longer releases their own GDB version, and that since 2013. As of CDT 9.0, the support for the obsolete Apple GDB has been removed. As an alternative, the GDB from the FSF (Free Software Foundation) can be used. Some instructions on how to do this are available on the <a rel="nofollow" class="external text" href="https://wiki.eclipse.org/CDT/User/FAQ#How_do_I_use_GDB_on_recent_versions_of_Mac_OS_X.3F">CDT FAQ page</a>.
</p>
<h2><span class="mw-headline" id="Bugs_Fixed_in_this_Release">Bugs Fixed in this Release</span></h2>
<p>See Bugzilla report <a rel="nofollow" class="external text" href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Tools&amp;product=CDT&amp;query_format=advanced&amp;resolution=FIXED&amp;target_milestone=9.0.0">Bugs Fixed in CDT 9.0</a>
</p>
<h2><span class="mw-headline" id="API_modifications">API modifications</span></h2>
<p>In CDT 9.0 the classic CDI (C Debugger Interface) has been removed after previously being deprecated, see <a rel="nofollow" class="external free" href="https://bugs.eclipse.org/484900">https://bugs.eclipse.org/484900</a>. The only debugger implementation in CDT is now DSF. If you are still using CDI...
</p>
<ol><li> <b>Migrate to DSF</b> -- more powerful, asynchronous debug framework</li>
<li> <b>Consider maintaining your own fork of CDI</b> -- It's all open source. </li></ol>
<p>In addition, with CDT 9.0, some public API are being modified. Several deprecated public methods, constants, interfaces and classes were changed to become internal APIs. These deprecated APIs are intended for removal in subsequent CDT releases.
</p><p>Below is the list of changes that are not backwards-compatible that extenders could trip on.
</p><p><br>
<b>org.eclipse.cdt.core</b>
</p>
<ol><li> The deprecated methods <b>ICPPTemplateInstance.getArguments()</b> and <b>ICPPClassTemplatePartialSpecialization.getArguments()</b> were removed. <b>ICPPTemplateInstance.getTemplateArguments()</b> and <b>ICPPClassTemplatePartialSpecialization.getTemplateArguments()</b> should be used instead.</li>
<li> The deprecated method <b>ICPPSpecialization.getArgumentMap()</b> was removed. <b>ICPPSpecialization.getTemplateParameterMap()</b> should be used instead.</li>
<li> The deprecated method <b>ICPPTemplateScope.getTemplateDefinition()</b> was removed. <b>ICPPTemplateScope.getTemplateDeclaration()</b> should be used instead.</li>
<li> The deprecated method <b>INodeFactory.newTranslationUnit()</b> was removed. <b>INodeFactory.newTranslationUnit(IScanner)</b> should be used instead.</li>
<li> The deprecated method <b>IASTFunctionCallExpression.setParameterExpression(IASTExpression expression)</b> was removed. <b>IASTFunctionCallExpression.setArguments(IASTInitializerClause[])</b> should be used instead.</li>
<li> The deprecated method <b>IASTFunctionCallExpression.getParameterExpression()</b> was removed. <b>IASTFunctionCallExpression.getArguments()</b> should be used instead.</li>
<li> The deprecated constant <b>IASTFunctionCallExpression.PARAMETERS</b> was removed. <b>IASTFunctionCallExpression.ARGUMENT</b> should be used instead.</li>
<li> The deprecated interface <b>IASTBuiltinSymbolProvider</b> was removed. <b>IBuiltinBindingsProvider</b> should be used instead.</li>
<li> The deprecated methods <b>ASTVisitor.visit(IASTComment)</b> and <b>ASTVisitor.leave(IASTComment)</b> were removed. <b>IASTTranslationUnit.getComments()</b> should be used instead.</li>
<li> The deprecated method <b>ICPPNodeFactory.newSimpleTypeConstructorExpression(int, IASTExpression)</b> was removed. <b>ICPPNodeFactory.newSimpleTypeConstructorExpression(ICPPASTDeclSpecifier, IASTInitializer)</b> should be used instead.</li>
<li> The deprecated method <b>ICPPNodeFactory.newSimpleDeclSpecifierGPP()</b> was removed. <b>ICPPNodeFactory.newSimpleDeclSpecifier()</b> should be used instead.</li>
<li> The deprecated method <b>ICPPNodeFactory.newPointerToMemberGPP(IASTName)</b> was removed. <b>ICPPNodeFactory.newPointerToMember(IASTName)</b> should be used instead.</li>
<li> The deprecated method <b>ICPPNodeFactory.newPointerGPP()</b> was removed. <b>INodeFactory.newPointer()</b> should be used instead.</li>
<li> The deprecated method <b>ICPPNodeFactory.newExplicitTemplateInstantiationGPP(IASTDeclaration)</b> was removed. <b>ICPPNodeFactory.newExplicitTemplateInstantiation(IASTDeclaration)</b> should be used instead.</li>
<li> The deprecated method <b>ICPPNodeFactory.newConstructorChainInitializer(IASTName, IASTExpression)</b> was removed. <b>ICPPNodeFactory.newConstructorChainInitializer(IASTName, IASTInitializer)</b> should be used instead.</li>
<li> The deprecated method <b>ICPPBase.getBaseClassSpecifierName()</b> was removed. A base class may be specified without the use of a name.</li>
<li> The deprecated constant <b>IASTBinaryExpression.op_last</b> was removed. It was never safe to use.</li>
<li> The deprecated method <b>ICPPASTQualifiedName.getNames()</b> was removed. <b>ICPPASTQualifiedName.getQualifier()</b> and <b>ICPPASTQualifiedName.getLastName()</b> should be used instead.</li></ol>
<p><br>
<b>org.eclipse.cdt.codan.core</b>
</p><p><a rel="nofollow" class="external free" href="https://git.eclipse.org/r/#/c/63810/">https://git.eclipse.org/r/#/c/63810/</a>
</p>
<ol><li> Method <b>IChecker.enabledInContext(IResource resource)</b> was removed. Just remove the implementation since the method is not called.</li>
<li> Method <b>IProblemLocationFactory.createProblemLocation(IFile file, int startChar, int endChar)</b> was removed. If you implement this interface, remove @Override annotation, if you use this method, replace with <b>createProblemLocation(file, startChar, endChar, -1)</b> (or appropriate line number, note: passing -1 is OK since it will recalculate the line from positions)</li>
<li> Constructor <b>CodanProblemLocation(IResource, int, int)</b> was removed, use <b>CodanProblemLocation(IResource file, int startChar, int endChar, int line)</b> instead.</li></ol>
<p><br>
<b>org.eclipse.cdt.dsf.gdb</b>
</p>
<ol><li> Thread ids used to be integers. However, due to recent changes, we expect GDB to possibly provide non-integer ids in some cases (e.g., thread 2.3 (thread 3 of process 2). Multiple methods were change to accept strings instead of int for thread ids. Adapting to these changes is straightforward.
<ol><li>You should look out for the following:
<ol><li> Obviously compiler errors that ask for a String instead of an int or Integer</li>
<li> Look for the use of == when using thread ids. Those should be replaced with String#equals(). </li>
<li> Integer.valueOf(threadId) accepts both the type int and String, so the compiler will not show an error when the parameter threadId becomes a string. You may want to review such cases.</li></ol></li>
<li>The list of actual changes follows:
<ol><li> The interface method <b>IMIExecutionDMContext#getThreadId()</b> which use to return an int now returns a string</li>
<li> The method <b>MIThreadListIdsInfo#getThreadIds()</b> has been removed. <b>MIThreadListIdsInfo#getStrThreadIds()</b> should be used instead.</li>
<li> The method <b>MIRunControl#createMIExecutionContext(IContainerDMContext, int threadId)</b> has been replaced with <b>MIRunControl#createMIExecutionContext(IContainerDMContext, String threadId)</b></li>
<li> The method <b>GDBRunControl#createMIExecutionContext(IContainerDMContext, int threadId)</b> has been replaced with <b>GDBRunControl#createMIExecutionContext(IContainerDMContext, String threadId)</b></li>
<li> The constructor <b>MIBreakInsert(IBreakpointsTargetDMContext, boolean, boolean, String, int, String, int tid, boolean)</b> has been replace with <b>MIBreakInsert(IBreakpointsTargetDMContext, boolean, boolean, String, int, String, String tid, boolean)</b></li>
<li> The constructor <b>MIBreakInsert(IBreakpointsTargetDMContext, boolean, boolean, String, int, String, int tid, boolean, boolean, boolean)</b> has been replace with <b>MIBreakInsert(IBreakpointsTargetDMContext, boolean, boolean, String, int, String, String tid, boolean, boolean, boolean)</b></li>
<li> The thow methods corresponding to the above changed constructors have also been changed in <b>CommandFactory.java</b> and <b>CommandFactory_6_8.java</b>to accept a String parameter for the thread id</li>
<li> The method <b>CLIThreadInfo#getCurrentThread()</b> which used to return an int now returns a String</li></ol></li></ol></li>
<li> Breakpoint numbers used to be integers. However, GDB can provide non-integer ids in some cases (e.g., bp 1.2). Multiple methods were change to accept strings instead of int for breakpoints. Although the impact may seem large, adapting to them is straightforward.
<ol><li>You should look out for the following:
<ol><li> Obviously compiler errors that ask for a String instead of an int or Integer</li>
<li> Look for the use of == when using breakpoint numbers. Those should be replaced with String#equals(). </li>
<li> Integer.valueOf(bpId) accepts both the type int and String, so the compiler will not show an error when the parameter bpId becomes a string. You may want to review such cases.</li></ol></li>
<li>The list of actual changes follows:
<ol><li> <b>MIBreakpoint#getNumber()</b> which used to return an int now returns a String</li>
<li> <b>CLITraceInfo#getTraceReference()</b> which used to return an Integer now returns a String</li>
<li> <b>CLIInfoBreakInfo#getBreakpointToGroupMap()</b> which used to return Map&lt;Integer, String[]&gt; now returns Map&lt;String, String[]&gt;</li>
<li> The constructor <b>MIWatchpointTriggerEvent(IExecutionDMContext, int, MIResult[], MIFrame, int number, String, String, String)</b> has been replaced with <b>MIWatchpointTriggerEvent(IExecutionDMContext, int, MIResult[], MIFrame, String number, String, String, String)</b></li>
<li> <b>MIWatchpointTriggerEvent#getNumber()</b> which used to return an int now returns a String</li>
<li> The constructor <b>MIWatchpointScopeEvent(IExecutionDMContext, int, MIResult[], MIFrame, int number)</b> has been replaced with <b>MIWatchpointScopeEvent(IExecutionDMContext, int, MIResult[], MIFrame, String number)</b></li>
<li> <b>MIWatchpointScopeEvent#getNumber()</b> which used to return an int now returns a String</li>
<li> The constructor <b>MICatchpointHitEvent(IExecutionDMContext, int, MIResult[], MIFrame, int bkptno, String, String)</b> has been replaced with <b>MICatchpointHitEvent(IExecutionDMContext, int, MIResult[], MIFrame, String bkptno, String, String)</b></li>
<li> The method <b>MICatchpointHitEvent#parse(IExecutionDMContext, int, MIResult[], int bkptNumber, String)</b> has been replaced with <b>MICatchpointHitEvent#parse(IExecutionDMContext, int, MIResult[], String bkptNumber, String)</b></li>
<li> The constructor <b>MIBreakpointHitEvent(IExecutionDMContext, int, MIResult[], MIFrame, int bkptno)</b> has been replaced with <b>MIBreakpointHitEvent(IExecutionDMContext, int, MIResult[], MIFrame, String bkptno)</b></li>
<li> <b>MIBreakpointHitEvent#getNumber()</b> which used to return an int now returns a String</li>
<li> The constructor <b>MITracepointSelectedEvent(IExecutionDMContext, int, MIResult[], MIFrame, int trptno, int)</b> has been replaced with <b>MITracepointSelectedEvent(IExecutionDMContext, int, MIResult[], MIFrame, String trptno, int)</b></li>
<li> The constructor <b>MIBreakEnable(IBreakpointsTargetDMContext ctx, int[] array)</b> has been replaced with <b>MIBreakEnable(IBreakpointsTargetDMContext ctx, String[] array)</b></li>
<li> The constructor <b>MIBreakDisable(IBreakpointsTargetDMContext ctx, int[] array)</b> has been replaced with <b>MIBreakDisable(IBreakpointsTargetDMContext ctx, String[] array)</b></li>
<li> The constructor <b>MIBreakDelete(IBreakpointsTargetDMContext ctx, int[] array)</b> has been replaced with <b>MIBreakDelete(IBreakpointsTargetDMContext ctx, String[] array)</b></li>
<li> The constructor <b>MIBreakCondition(IBreakpointsTargetDMContext ctx, int breakpoint, String)</b> has been replaced with <b>MIBreakCondition(IBreakpointsTargetDMContext ctx, String breakpoint, String)</b></li>
<li> The constructor <b>MIBreakCommands(IBreakpointsTargetDMContext ctx, int breakpoint, String[])</b> has been replaced with <b>MIBreakCommands(IBreakpointsTargetDMContext ctx, String breakpoint, String[])</b></li>
<li> The constructor <b>MIBreakAfter(IBreakpointsTargetDMContext ctx, int breakpoint, int)</b> has been replaced with <b>MIBreakAfter(IBreakpointsTargetDMContext ctx, String breakpoint, int)</b></li>
<li> The constructor <b>CLIPasscount(IBreakpointsTargetDMContext ctx, int breakpoint, int)</b> has been replaced with <b>CLIPasscount(IBreakpointsTargetDMContext ctx, String breakpoint, int)</b></li>
<li> All methods corresponding to the above changed constructors have also been changed in <b>CommandFactory.java</b> to accept a String parameter for the breakpoint</li>
<li> The method <b>MIBreakpointsSynchronizer#targetBreakpointDeleted(int id)</b> has been replaced with <b>MIBreakpointsSynchronizer#targetBreakpointDeleted(String id)</b></li>
<li> The method <b>MIBreakpointsSynchronizer#isTargetBreakpointDeleted(IBreakpointsTargetDMContext, int bpId, boolean)</b> has been replaced with <b>MIBreakpointsSynchronizer#isTargetBreakpointDeleted(IBreakpointsTargetDMContext, String bpId, boolean)</b></li>
<li> The method <b>MIBreakpoints#getBreakpointMap(IBreakpointsTargetDMContext)</b> which used to return Map&lt;Integer, MIBreakpointDMData[]&gt; now returns Map&lt;String, MIBreakpointDMData[]&gt;</li>
<li> The method <b>MIBreakpoints#createNewBreakpointMap(IBreakpointsTargetDMContext)</b> which used to return Map&lt;Integer, MIBreakpointDMData[]&gt; now returns Map&lt;String, MIBreakpointDMData[]&gt;</li>
<li> The constructor <b>MIBreakpoints#MIBreakpointDMContext(MIBreakpoints, IDMContext[], int reference)</b> has been replaced with <b>MIBreakpoints#MIBreakpointDMContext(MIBreakpoints, IDMContext[], String reference)</b></li>
<li> The constructor <b>MIBreakpoints#MIBreakpointDMContext(String, IDMContext[], int reference)</b> has been replaced with <b>MIBreakpoints#MIBreakpointDMContext(String, IDMContext[], String reference)</b></li>
<li> The method <b>MIBreakpoints#MIBreakpointDMContext#getReference()</b> which used to return an int, now returns a String</li>
<li> The method <b>MIBreakpoints#changeCondition(IBreakpointsTargetDMContext, int reference, String, RequestMonitor)</b> has been replaced with <b>MIBreakpoints#changeCondition(IBreakpointsTargetDMContext, String reference, String, RequestMonitor)</b> </li>
<li> The method <b>MIBreakpoints#changeIgnoreCount(IBreakpointsTargetDMContext, int reference, int, RequestMonitor)</b> has been replaced with <b>MIBreakpoints#changeIgnoreCount(IBreakpointsTargetDMContext, String reference, int, RequestMonitor)</b></li>
<li> The method <b>MIBreakpoints#enableBreakpoint(IBreakpointsTargetDMContext, int reference, RequestMonitor)</b> has been replaced with <b>MIBreakpoints#enableBreakpoint(IBreakpointsTargetDMContext, String reference, RequestMonitor)</b></li>
<li> The method <b>MIBreakpoints#disableBreakpoint(IBreakpointsTargetDMContext, int reference, RequestMonitor)</b> has been replaced with <b>MIBreakpoints#disableBreakpoint(IBreakpointsTargetDMContext, String reference, RequestMonitor)</b></li>
<li> The method <b>MIBreakpoints#deleteBreakpointFromTarget(IBreakpointsTargetDMContext, int reference, RequestMonitor)</b> has been replaced with <b>MIBreakpoints#deleteBreakpointFromTarget(IBreakpointsTargetDMContext, String reference, RequestMonitor)</b></li>
<li> The method <b>MIBreakpoints#getBreakpointTargetContext(int reference)</b> has been replace with <b>MIBreakpoints#deleteBreakpointFromTarget(String reference)</b></li>
<li> <b>MIBreakpointDMData#getReference()</b> which used to return an int now returns a String</li>
<li> <b>MIBreakpointDMData#getNumber()</b> which used to return an int now returns a String</li>
<li> The constructor <b>GDBRunControl_7_0_NS#RunToLineActiveOperation(IMIExecutionDMContext, int bpId, String, String, boolean)</b> has been replaced with <b>GDBRunControl_7_0_NS#RunToLineActiveOperation(IMIExecutionDMContext, String bpId, String, String, boolean)</b></li>
<li> <b>GDBRunControl_7_0_NS#RunToLineActiveOperation#getBreakpointId()</b> which used to return an int now returns a String</li>
<li> The method <b>GDBBreakpoints_7_4#deleteBreakpointFromTarget(IBreakpointsTargetDMContext, int reference, RequestMonitor)</b> has been replaced with <b>GDBBreakpoints_7_4#deleteBreakpointFromTarget(IBreakpointsTargetDMContext, String reference, RequestMonitor)</b></li>
<li> The method <b>GDBBreakpoints_7_0#changePassCount(IBreakpointsTargetDMContext, int reference, int, RequestMonitor)</b> has been replaced with <b>GDBBreakpoints_7_0#changePassCount(IBreakpointsTargetDMContext, String reference, int, RequestMonitor)</b></li></ol></li></ol></li>
<li> The constructor <b>GdbDebugServicesFactory.GdbDebugServicesFactory(String)</b> has been deprecated in preference to <b>GdbDebugServicesFactory.GdbDebugServicesFactory(String, ILaunchConfiguration)</b>. The launch configuration passed to the constructor is used to determine if the configuration is for GDB non-stop mode.</li>
<li> The class <b>GdbDebugServicesFactoryNS</b> has been removed and its logic was merged into class <b>GdbDebugServicesFactory</b>. Classes extending GdbDebugServicesFactory can override <b>GdbDebugServicesFactory.getIsNonStopMode()</b> to provide custom logic to determine if a launch should be using non-stop or not without having to override <b>GdbDebugServicesFactory.createRunControlService(DsfSession)</b>.</li>
<li> The protected method <b>GdbLaunchDelegate.cleanupLaunch()</b> has been removed. It has been replaced with <b>GdbLaunchDelegate.cleanupLaunch(ILaunch)</b>. Although the replaced method was not deprecated, it was used in an incorrect fashion and we felt it was justified to modify it.</li>
<li> <b>GdbLaunchDelegate.getLaunch()</b> no longer initializes the launch. Initializing the launch needs to be done in <b>launchDebugSession</b> if overridden by calling <b>launch.initialize()</b>.</li>
<li> The deprecated protected methods <b>GDBBackend.getGDBCommandLine()</b> and <b>GDBBackend.launchGDBProcess(String)</b> were removed. <b>GDBBackend.getGDBCommandLineArray()</b> and <b>GDBBackend.launchGDBProcess(String[])</b> should be used instead.</li>
<li> The deprecated protected method <b>GdbLaunchDelegate.newServiceFactory(String)</b> was removed. It was replaced with GdbLaunchDelegate.newServiceFactory(ILaunchConfiguration, String)</li>
<li> The constructor <b>MIThreadGroupExitedEvent(IProcessDMContext, int, String)</b> was removed. MIThreadGroupExitedEvent(IProcessDMContext, int, MIResult[]) should be used instead.</li>
<li> The constructor <b>MITargetAttach(ICommandControlDMContext, String)</b> was removed. MITargetAttach(IMIContainerDMContext, String) or MITargetAttach(IMIContainerDMContext, String, boolean) should be used instead.</li>
<li> Based on the previous change, the method <b>CommandFactory.createMITargetAttach(ICommandControlDMContext, String)</b> was removed. CommandFactory.createMITargetAttach(IMIContainerDMContext, String) or CommandFactory.createMITargetAttach(IMIContainerDMContext, String, boolean) should be used instead.</li>
<li> The constructors <b>MIFileExecAndSymbols(ICommandControlDMContext)</b> and <b>MIFileExecAndSymbols(ICommandControlDMContext, String)</b> where removed. MIFileExecAndSymbols(IMIContainerDMContext) and MIFileExecAndSymbols(IMIContainerDMContext, String) should be used instead.</li>
<li> In <b>GDBControl_7_0</b>, the classes <b>InitializationShutdownStep</b>, <b>CommandMonitoringStep</b>, <b>CommandProcessorsStep</b>, <b>RegisterStep</b> were removed; their counterparts, defined in GDBControl, should be used instead.</li>
<li> Based on the previous change, the class <b>GDBControl_7_0.ListFeaturesStep</b> now extends GDBControl.InitializationShutdownStep instead of the removed GDBControl_7_0.InitializationShutdownStep.</li>
<li> <b>MIVariableManager.MIVariableObject.setExpressionData(String,String,int)</b> was removed. The method MIVariableManager.MIVariableObject.setExpressionData(ExpressionInfo,String,int,boolean) should be used instead.</li>
<li> <b>GdbLaunchDelegate.newServiceFactory(String)</b> was removed. It has been replaced with GdbLaunchDelegate.newServiceFactory(ILaunchConfiguration, String)</li>
<li> The methods <b>MIDataListRegisterValues.MIDataListRegisterValues(IMIExecutionDMContext, int)</b> and <b>MIDataListRegisterValues.MIDataListRegisterValues(IMIExecutionDMContext, int, int[])</b> were removed. Callers should instead use the methods of the same name but passing in an IFrameDMContext instead of an IMIExecutionDMContext.</li>
<li> Following the above change, the methods <b>CommandFactory.MIDataListRegisterValues(IMIExecutionDMContext, int)</b> and <b>CommandFactory.MIDataListRegisterValues(IMIExecutionDMContext, int, int[])</b> have also been removed, and their corresponding methods using IFrameDMContext should be used instead.</li>
<li> The method <b>GDBRunControl_7_0_NS.eventDispatched(ITraceRecordSelectedChangedDMEvent)</b> was removed. GDBRunControl_7_2_NS.eventDispatched(ITraceRecordSelectedChangedDMEvent) should be used instead.</li>
<li> Support for the obsolete Apple GDB was removed
<ul><li>The following macos packages were removed:
<ul><li> org.eclipse.cdt.dsf.gdb.service.macos,</li>
<li> org.eclipse.cdt.dsf.mi.service.command.commands.macos,</li>
<li> org.eclipse.cdt.dsf.mi.service.command.output.macos</li>
<li> org.eclipse.cdt.debug.gdbjtag.core.dsf.gdb.service.macos</li></ul></li>
<li>The following classes, contained in the above packages are now removed:
<ul><li> MacOSCommandFactory.java</li>
<li> MacOSGDBProcesses.java</li>
<li> MacOSGDBRunControl.java</li>
<li> MacOSGdbDebugServicesFactory.java</li>
<li> MacOSMIEnvironmentCD.java</li>
<li> MacOSMIVarUpdate.java</li>
<li> MacOSMIVarUpdateInfo.java</li>
<li> MacOSGdbJtagDebugServicesFactory.java</li></ul></li>
<li>The constant LaunchUtils.MACOS_GDB_MARKER was removed.</li></ul></li>
<li> GDBLaunch#initialize() it can now throw DebugException</li></ol>
<p><b>org.eclipse.cdt.launch.remote</b>
</p>
<ol><li> The class <b>RemoteCMainTab</b> was removed as part of the CDI cleanup. <b>RemoteCDSFMainTab</b> should be used instead. Using the old RemoteCMainTab without the corresponding CDI launch would have unspecified behavior, so it was removed.</li></ol>
<p><b>org.eclipse.cdt.testsrunner</b>
</p>
<ol><li> The class <b>CdiRunTestsLaunchDelegate</b> was renamed <b>RunTestsLaunchDelegate</b>, as part of the CDI cleanup.</li></ol>
<p><b>org.eclipse.cdt.debug.gdbjtag.core</b>
</p>
<ol><li> The constructor <b>GdbJtagDebugServicesFactory.GdbJtagDebugServicesFactory(String)</b> has been replaced by <b>GdbJtagDebugServicesFactory.GdbJtagDebugServicesFactory(String, ILaunchConfiguration)</b></li></ol>
<p><b>org.eclipse.cdt.debug.gdbjtag.ui</b>
</p>
<ol><li> The class <b>GDBJtagCDICMainTab</b> was removed as part of the CDI cleanup. <b>GDBJtagDSFCMainTab</b> should be used instead. Using the old GDBJTagCDICMainTab without the corresponding CDI launch would have unspecified behavior, so it was removed.</li></ol>
<p><br>
<b>org.eclipse.cdt.managedbuilder.ui</b>
</p>
<ol><li> The class <b>ToolChainSelectionPage</b> was removed. It was being used by a wizard that was never used and that was removed.</li></ol>
<p><br>
<b>org.eclipse.cdt.launch</b>
</p>
<ol><li> The class <b>LocalCDILaunchDelegate</b> has been removed as part of the CDI cleanup. For a Run launch, the class <b>LocalRunLaunchDelegate</b> should be used instead. For a Debug launch, the DSF-GDB launch delegate should be used.</li></ol>
<ol><li> The class <b>CDebuggerTab</b> and <b>AbstractCDebuggerTab</b> have been removed as part of the CDI cleanup. The abstract class <b>CLaunchConfigurationTab</b> can be extended instead to obtain the non-CDI functionality.</li></ol>
<p><b>org.eclipse.cdt.ui</b>
</p>
<ol><li> The classes <b>NewCDTProjectWizard</b>, <b>ProjectTypePage</b>, <b>TemplateSelectionPage</b> were removed. The wizard and its pages were never used and were not fully functional.</li>
<li> The extension point <b>projectTypePages</b> was removed. It was being used by a wizard that was never used and that was removed.</li></ol>
<p><b>Plugin-removal</b>
</p>
<ol><li> The <b>p2/</b> directory was completely removed from the CDT git repository. It included the following plugins:
<ul><li> <b>org.eclipse.cdt.p2</b> was removed</li>
<li> <b>org.eclipse.cdt.p2-feature</b> was removed</li>
<li> <b>org.eclipse.cdt.p2.generator</b> was removed</li></ul></li>
<li> The old <b>org.eclipse.cdt.releng</b> was removed. It was the old way of doing CDT releases.</li>
<li> The <b>org.eclipse.cdt.core.linux.ai64</b> and <b>org.eclipse.cdt.core.qnx</b> plusings have been removed. Those two targets are no longer supported.</li>
<li> The <b>org.eclipse.linuxtools.cdt.autotools.core</b> plugin has been removed. It had been replaced with <b>org.eclipse.cdt.autotools.core</b></li></ol>
<!--
NewPP limit report
Cached time: 20220930151517
Cache expiry: 86400
Dynamic content: false
CPU time usage: 0.364 seconds
Real time usage: 0.804 seconds
Preprocessor visited node count: 118/1000000
Preprocessor generated node count: 124/1000000
Post‐expand include size: 0/2097152 bytes
Template argument size: 0/2097152 bytes
Highest expansion depth: 2/40
Expensive parser function count: 0/100
-->
<!--
Transclusion expansion time report (%,ms,calls,template)
100.00% 0.000 1 - -total
-->
<!-- Saved in parser cache with key my_wiki:pcache:idhash:35999-0!*!0!!en!5!* and timestamp 20220930151516 and revision id 420097
-->
</div>
<!-- catlinks -->
<div id="catlinks" class="catlinks catlinks-allhidden"></div> <!-- /catlinks -->
</div>
</div>
</div>
</div>
<!-- /maincontent -->
<!-- printfooter -->
<div class="printfooter">
Retrieved from "<a dir="ltr" href="https://wiki.eclipse.org/index.php?title=CDT/User/NewIn90&amp;oldid=420097">https://wiki.eclipse.org/index.php?title=CDT/User/NewIn90&amp;oldid=420097</a>" </div>
<!-- /printfooter -->
<!-- debughtml -->
<!-- /debughtml -->
</div>
<!-- /bodyContent -->
</section>
<!-- /content -->
<!-- footer -->
</div>
<div class="featured-footer featured-footer-newsletter background-secondary">
<div class="container">
<p id="footercredit">This page was last modified 07:16, 20 October 2017 by <a href="https://wiki.eclipse.org/User:Jonah.kichwacoders.com" title="User:Jonah.kichwacoders.com">Jonah Graham</a>. Based on work by <a href="https://wiki.eclipse.org/index.php?title=User:Tcorbat.hsr.ch&amp;action=edit&amp;redlink=1" class="new" title="User:Tcorbat.hsr.ch (page does not exist)">Thomas Corbat</a>, <a href="https://wiki.eclipse.org/index.php?title=User:Elaskavaia.cdt.gmail.com&amp;action=edit&amp;redlink=1" class="new" title="User:Elaskavaia.cdt.gmail.com (page does not exist)">Alena Laskavaia</a> and <a href="https://wiki.eclipse.org/index.php?title=User:Marc.khouzam.ericsson.com&amp;action=edit&amp;redlink=1" class="new" title="User:Marc.khouzam.ericsson.com (page does not exist)">Marc Khouzam</a> and <a href="https://wiki.eclipse.org/index.php?title=CDT/User/NewIn90&amp;action=credits" title="CDT/User/NewIn90">others</a>.</p><p id="footerviews"></p> </div>
</div>
</main> <!-- /#main-content-container-row -->
<p id="back-to-top" class="noprint hidden-print">
<a class="visible-xs" href="https://wiki.eclipse.org/CDT/User/NewIn90#top">Back to the top</a>
</p>
<footer id="solstice-footer">
<div class="container">
<div class="row">
<section class="col-sm-6 hidden-print" id="footer-eclipse-foundation">
<h2 class="section-title">Eclipse Foundation</h2>
<ul class="nav">
<li><a href="https://www.eclipse.org/org/">About Us</a></li>
<li><a href="https://www.eclipse.org/org/foundation/contact.php">Contact Us</a></li>
<li><a href="https://www.eclipse.org/donate">Donate</a></li>
<li><a href="https://www.eclipse.org/membership/">Members</a></li>
<li><a href="https://www.eclipse.org/org/documents/">Governance</a></li>
<li><a href="https://www.eclipse.org/org/documents/Community_Code_of_Conduct.php">Code of Conduct</a></li>
<li><a href="https://www.eclipse.org/artwork/">Logo and Artwork</a></li>
<li><a href="https://www.eclipse.org/org/foundation/directors.php">Board of Directors</a></li>
</ul>
</section>
<section class="col-sm-6 hidden-print" id="footer-legal">
<h2 class="section-title">Legal</h2>
<ul class="nav">
<li><a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
<li><a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
<li><a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
<li><a href="https://www.eclipse.org/legal/epl-2.0/">Eclipse Public License</a></li>
<li><a href="https://www.eclipse.org/legal/">Legal Resources</a></li>
</ul>
</section>
<section class="col-sm-6 hidden-print" id="footer-useful-links">
<h2 class="section-title">Useful Links</h2>
<ul class="nav">
<li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
<li><a href="https://help.eclipse.org/">Documentation</a></li>
<li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
<li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
<li><a href="https://www.eclipse.org/forums/">Forums</a></li>
<li><a href="https://marketplace.eclipse.org/">Marketplace</a></li>
</ul>
</section>
<section class="col-sm-6 hidden-print" id="footer-other">
<h2 class="section-title">Other</h2>
<ul class="nav">
<li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
<li><a href="https://www.eclipse.org/projects">Projects</a></li>
<li><a href="https://www.eclipse.org/org/workinggroups/">Working Groups</a></li>
<li><a href="https://www.eclipse.org/org/research/">Research@Eclipse</a></li>
<li><a href="https://www.eclipse.org/security/">Report a Vulnerability</a></li>
<li><a href="https://status.eclipse.org/">Service Status</a></li>
</ul>
</section>
<div class="col-sm-24 margin-top-20">
<div class="row">
<div id="copyright" class="col-md-16">
<p id="copyright-text">Copyright © Eclipse Foundation, Inc. All Rights Reserved.</p>
</div>
<div class="col-md-8 social-media">
<ul class="list-inline">
<li>
<a class="social-media-link fa-stack fa-lg" href="https://twitter.com/EclipseFdn">
<i class="fa fa-circle-thin fa-stack-2x"></i>
<i class="fa fa-twitter fa-stack-1x"></i>
</a>
</li>
<li>
<a class="social-media-link fa-stack fa-lg" href="https://www.facebook.com/eclipse.org">
<i class="fa fa-circle-thin fa-stack-2x"></i>
<i class="fa fa-facebook fa-stack-1x"></i>
</a>
</li>
<li>
<a class="social-media-link fa-stack fa-lg" href="https://www.youtube.com/user/EclipseFdn">
<i class="fa fa-circle-thin fa-stack-2x"></i>
<i class="fa fa-youtube fa-stack-1x"></i>
</a>
</li>
<li>
<a class="social-media-link fa-stack fa-lg" href="https://www.linkedin.com/company/eclipse-foundation">
<i class="fa fa-circle-thin fa-stack-2x"></i>
<i class="fa fa-linkedin fa-stack-1x"></i>
</a>
</li>
</ul>
</div>
</div>
</div>
<a href="https://wiki.eclipse.org/CDT/User/NewIn90#" class="scrollup">Back to the top</a>
</div>
</div>
</footer>
<!-- /footer -->
<script>window.RLQ = window.RLQ || []; window.RLQ.push( function () {
mw.loader.state({"skins.solstice":"loading","user":"ready","user.groups":"ready"});mw.loader.load("/load.php?debug=false\u0026lang=en\u0026modules=skins.solstice\u0026only=scripts\u0026skin=solstice");mw.loader.load(["mediawiki.toc","mediawiki.action.view.postEdit","site","mediawiki.user","mediawiki.hidpi","mediawiki.page.ready","mediawiki.searchSuggest"]);
} );</script><script>window.RLQ = window.RLQ || []; window.RLQ.push( function () {
mw.config.set({"wgBackendResponseTime":457});
} );</script>
<script type="text/javascript" id="hs-script-loader" src="./CDT-9.0_files/5413615(2).js"></script>
<div class="suggestions" style="display: none; font-size: 14px;"><div class="suggestions-results"></div><div class="suggestions-special"></div></div></body></html>