Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "TCF/NewIn14"

< TCF
 
(18 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
=TCF 1.4 New & Noteworthy=
 
=TCF 1.4 New & Noteworthy=
 +
 +
TCF 1.4 was released on 22-Jun-2016 with Eclipse [[Neon]]. See also the [[TCF/DraftPlan14]].
  
 
==TCF API and Protocol==
 
==TCF API and Protocol==
  
API Tooling Tags (mostly @noimplement) have been added to the [https://git.eclipse.org/c/tcf/org.eclipse.tcf.git/tree/plugins/org.eclipse.tcf.core/src/org/eclipse/tcf/services?h=master TCF Protocol Java Interfaces]. All API Additions are marked with "@since 1.4" in the Java Interfaces.
+
All API Additions are marked with "@since 1.4" in the [https://git.eclipse.org/c/tcf/org.eclipse.tcf.git/tree/plugins/org.eclipse.tcf.core/src/org/eclipse/tcf/services?h=1.4_neon_bugfix TCF Protocol Java Interfaces].
  
In few cases, the [http://git.eclipse.org/c/tcf/org.eclipse.tcf.git/plain/docs/TCF%20Services.html TCF Services Docs] were slightly updated to clarify ambiguities; for example the [http://git.eclipse.org/c/tcf/org.eclipse.tcf.git/commit/?id=b65b8b2a272071c010b5ce14d228422bced49de7 Streams Service Specs]. This does not constitute API change or additions.
+
* [https://git.eclipse.org/c/tcf/org.eclipse.tcf.git/diff/plugins/org.eclipse.tcf.core/src/org/eclipse/tcf/services/IBreakpoints.java?id=f0b6acd79de62721ff71e1062e720c6c8a41cec1 IBreakpoints Service]: Property '''LineOffset''' added for more control over breakpoint relocation (see below, and {{bug|469842}}).
<!--
+
* [https://git.eclipse.org/c/tcf/org.eclipse.tcf.git/commit/?id=82e5a0e04629bb413608ef6757b53b94f3cb2bbf IDiagnostics Service]: echoINT() and DoneEchoINT() added for improved test coverage.
* [https://git.eclipse.org/c/tcf/org.eclipse.tcf.git/tree/plugins/org.eclipse.tcf.core/src/org/eclipse/tcf/services/IExpressions.java?h=1.2_luna IExpressions Service]: Expression Scope Attributes, and a '''createInScope()''' method for early scoping
+
* [https://git.eclipse.org/c/tcf/org.eclipse.tcf.git/diff/plugins/org.eclipse.tcf.core/src/org/eclipse/tcf/services/IExpressions.java?id=b9a8fda0453233f65491ac15013c48a46bc20eb0 IExpressions Service]: VAL_BIT_STRIDE added for improved Ada debugging (see {{bug|492193}}).
* [https://git.eclipse.org/c/tcf/org.eclipse.tcf.git/tree/plugins/org.eclipse.tcf.core/src/org/eclipse/tcf/services/IStackTrace.java?h=1.2_luna IStackTrace Service]: Hooks have been added to allow customizing the stack tracing: {{bug|424032}}
+
* [https://git.eclipse.org/c/tcf/org.eclipse.tcf.git/commit/?id=3b2aca8bd0940fd668ffe6a83d8fd1eb2334169f IMemoryMap Service]: PROP_KERNEL_MODULE added to support Kernel module debugging.
 +
* [https://git.eclipse.org/c/tcf/org.eclipse.tcf.git/commit/?id=3d77e375e2cb90e661e58273dbff16f1591d2dcd IProcesses Service]: '''getSignalMask()''', '''DoneGetSignalMask''' and '''setSignalMask()''' added, to support handling signals &gt; 31 in the debugger (see {{bug|490874}}).
 +
* [https://git.eclipse.org/c/tcf/org.eclipse.tcf.git/commit/plugins/org.eclipse.tcf.core/src/org/eclipse/tcf/services?id=b0013659c3e62fcabcc7e2cb196466810ebc76bc IRunControl Service]: RegAccessTypes flags '''rd-stop''' and '''wr-stop''' added
 +
** [https://git.eclipse.org/c/tcf/org.eclipse.tcf.git/commit/?id=9e8e8ee4d8707b7731c434b0ec0de4f4d7295f65 IRunControl Service]: Resume command parameter '''StepIntoHidden''' added.
 +
* [https://git.eclipse.org/c/tcf/org.eclipse.tcf.git/commit/plugins/org.eclipse.tcf.core/src/org/eclipse/tcf/services?id=be223e40664c941dc7287695dcc03383dcedbb06 ISysMonitor Service]: Properties '''Exe''' and '''Exetype''' added (see {{bug|470179}})
  
Hooks have been added for more generic identifier callbacks ({{bug|426495}}) and to support multiple and different context interfaces ({{bug|422946}}).
+
The [http://git.eclipse.org/c/tcf/org.eclipse.tcf.git/plain/docs/TCF%20Services.html TCF Services Docs] have been updated in some cases, but not all; if in doubt, the Java interfaces linked from above should be consulted as the API references. [http://eclip.se/aa Documentation Bugs] have been opened to get the services docs back in sync. Community contributions would be appreciated on this documentation effort.  
-->
+
 
The TCF Python Binding is fully on par with the Java binding and actively being tested, maintained and improved.
+
The [https://git.eclipse.org/c/tcf/org.eclipse.tcf.git/tree/python/src/tcf/services?h=1.4_neon_bugfix TCF Python Binding] is mostly on par with the Java binding and actively being tested, maintained and improved. If in doubt regarding protocol API, the Java interfaces as linked from above should be consulted.
  
 
==TCF Agent and C Value-Add==
 
==TCF Agent and C Value-Add==
* Support for ARM Thumb and aarch64 has been strongly improved
+
* Support for ARM Thumb and aarch64 has been strongly improved.
 +
* Support for Ada constructs has been strongly improved (primarily support for additional Dwarf tags)
 +
* More graceful handling of SIGINT and SIGTERM when debugging.
 +
* Dwarf reader test coverage was increased significantly.
 +
* Lots of bug fixes stability improvements, especially in expression evaluation, disassemblers and C++ support.
 +
 
 +
==TCF C/C++ Debugger==
 +
=== Breakpoint Relocation Limit ===
 +
* A new Preference Option, '''Apply relocation limit to new line breakpoints''' has been added on the ''Preferences &gt; Run/Debug &gt; Breakpoints &gt;'' page. This helps keeping control when breakpoints are moved or duplicated due to preprocessing, code changes after the breakpoint was defined, compiler optimizations and inlining.<br/>Relocated breakpoints are visualized by a ball (the original breakpoint) plus a separate checkmark on each planted location. Only the original breakpoint can be used for changing its properties; when hovering over a planted location, the name of the original breakpoint is shown.<br/>[[File:Bp_relocation_moved.png]]<br/>By default, there is no limit on breakpoint relocations. Restricing relocations allows to maintain more control over what the debugger can do to a breakpoint, thus avoiding user's surprise due to execution halted at unexpected locations. The debugger will visualize breakpoints with an error decorator when it can not be planted due to restricted relocation:<br/>[[File:Bp_relocation_error.png]]<br/>Restricting relocations makes sense when breakpoints get duplicated due to compiler optimizations, and when stopping the program at unintended locations would cause problems. See [http://eclip.se/469842#c2 Bug 469842] for more details.
 +
=== Disabling the Variable Hover ===
 +
A new Preference Option, '''Allow inspection of a variable by hovering over it even when application is running''', has been added on the ''Preferences &gt; Run/Debug &gt; Target Communication'' page.
 +
* Variable hovers are convenient to inspect static variables even while an application is running; but doing so may also temporarily stop the application under test as a side-effect and may thus lead to unexpected behavior. Turning off hovers makes application run-time behavior more deterministic. See also the respective [https://dev.eclipse.org/mhonarc/lists/tcf-dev/msg01024.html discussion on the tcf-dev mailing list].
 +
=== Build Project Only on Launch ===
 +
* The TCF Launch Configuration now supports building only specific projects/configurations on Launch. New API '''ITCFLaunchProjectBuilder''' and '''ITCFLaunchContext#getBuildConfigIDs()''' was added to support that. See {{bug|485132}} for details.
 +
=== Improved Memory View ===
 +
* Improved Memory View: memory monitor base address can be dynamic expression, for example, a local variable name. The debugger re-computes the address when necessary, so memory monitor tracks location of the variable as it changes during application execution or across re-launch of the debug session.
  
 
==Target Explorer==
 
==Target Explorer==
* Bug fixes
+
* Updated to support CDT 9.0 -- TCF 1.4 test automation actively validates against Eclipse 3.8.1 up to 4.6 (and related CDT).
 +
* The File System browser can now better deal with special characters in file and directory names, and its performance has been strongly improved.
 +
* The C/C++ GDB (via TCF/TE) Remote Launcher now supports changing the remote user ID, and reliably running a script before execution.
  
 
==Bug Fixes, Robustness and Statistics==
 
==Bug Fixes, Robustness and Statistics==
  
[https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&classification=Tools&list_id=14035616&product=TCF&query_format=advanced&resolution=FIXED&target_milestone=1.4 45 bugs and enhancement requests] have been implemented for the TCF 1.4 release.
+
[https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&classification=Tools&list_id=14035616&product=TCF&query_format=advanced&resolution=FIXED&target_milestone=1.4 62 bugs and enhancement requests] have been implemented for the TCF 1.4 release.
  
See also [https://www.ohloh.net/p/eclipse_cdt_tcf Ohloh!] for statistics.
+
See also [https://www.ohloh.net/p/eclipse_cdt_tcf TCF on OpenHUB] and the [https://projects.eclipse.org/projects/tools.cdt.tcf/who TCF Project Page] for statistics.
  
<!--
+
The TCF project team would like to take this opportunity to thank our [https://www.openhub.net/p/eclipse_cdt_tcf/contributors?sort=latest_commit&time_span=12+months 17 contributors in the past 12 months] as per the [https://dev.eclipse.org/ipzilla/show_bug.cgi?id=11500 approved IP Log for TCF 1.4] !
The TCF project team would like to take this opportunity to thank all our 31 contributors in the past 12 months as per the [https://bugs.eclipse.org/bugs/attachment.cgi?id=243854 approved IP Log for TCF 1.3] !
+
-->
+
  
The searchable git logs for the [https://git.eclipse.org/c/tcf/org.eclipse.tcf.agent.git/log/?h=master agent] and the [https://git.eclipse.org/c/tcf/org.eclipse.tcf.git/log/?h=master TCF main repository] provide more insight into all changes made for TCF 1.4.
+
The searchable git logs for the [https://git.eclipse.org/c/tcf/org.eclipse.tcf.agent.git/log/?h=master agent] and the [https://git.eclipse.org/c/tcf/org.eclipse.tcf.git/log/?h=1.4_neon_bugfix TCF main repository] provide more insight into all changes made for TCF 1.4.

Latest revision as of 16:45, 4 September 2017

TCF 1.4 New & Noteworthy

TCF 1.4 was released on 22-Jun-2016 with Eclipse Neon. See also the TCF/DraftPlan14.

TCF API and Protocol

All API Additions are marked with "@since 1.4" in the TCF Protocol Java Interfaces.

The TCF Services Docs have been updated in some cases, but not all; if in doubt, the Java interfaces linked from above should be consulted as the API references. Documentation Bugs have been opened to get the services docs back in sync. Community contributions would be appreciated on this documentation effort.

The TCF Python Binding is mostly on par with the Java binding and actively being tested, maintained and improved. If in doubt regarding protocol API, the Java interfaces as linked from above should be consulted.

TCF Agent and C Value-Add

  • Support for ARM Thumb and aarch64 has been strongly improved.
  • Support for Ada constructs has been strongly improved (primarily support for additional Dwarf tags)
  • More graceful handling of SIGINT and SIGTERM when debugging.
  • Dwarf reader test coverage was increased significantly.
  • Lots of bug fixes stability improvements, especially in expression evaluation, disassemblers and C++ support.

TCF C/C++ Debugger

Breakpoint Relocation Limit

  • A new Preference Option, Apply relocation limit to new line breakpoints has been added on the Preferences > Run/Debug > Breakpoints > page. This helps keeping control when breakpoints are moved or duplicated due to preprocessing, code changes after the breakpoint was defined, compiler optimizations and inlining.
    Relocated breakpoints are visualized by a ball (the original breakpoint) plus a separate checkmark on each planted location. Only the original breakpoint can be used for changing its properties; when hovering over a planted location, the name of the original breakpoint is shown.
    Bp relocation moved.png
    By default, there is no limit on breakpoint relocations. Restricing relocations allows to maintain more control over what the debugger can do to a breakpoint, thus avoiding user's surprise due to execution halted at unexpected locations. The debugger will visualize breakpoints with an error decorator when it can not be planted due to restricted relocation:
    Bp relocation error.png
    Restricting relocations makes sense when breakpoints get duplicated due to compiler optimizations, and when stopping the program at unintended locations would cause problems. See Bug 469842 for more details.

Disabling the Variable Hover

A new Preference Option, Allow inspection of a variable by hovering over it even when application is running, has been added on the Preferences > Run/Debug > Target Communication page.

  • Variable hovers are convenient to inspect static variables even while an application is running; but doing so may also temporarily stop the application under test as a side-effect and may thus lead to unexpected behavior. Turning off hovers makes application run-time behavior more deterministic. See also the respective discussion on the tcf-dev mailing list.

Build Project Only on Launch

  • The TCF Launch Configuration now supports building only specific projects/configurations on Launch. New API ITCFLaunchProjectBuilder and ITCFLaunchContext#getBuildConfigIDs() was added to support that. See bug 485132 for details.

Improved Memory View

  • Improved Memory View: memory monitor base address can be dynamic expression, for example, a local variable name. The debugger re-computes the address when necessary, so memory monitor tracks location of the variable as it changes during application execution or across re-launch of the debug session.

Target Explorer

  • Updated to support CDT 9.0 -- TCF 1.4 test automation actively validates against Eclipse 3.8.1 up to 4.6 (and related CDT).
  • The File System browser can now better deal with special characters in file and directory names, and its performance has been strongly improved.
  • The C/C++ GDB (via TCF/TE) Remote Launcher now supports changing the remote user ID, and reliably running a script before execution.

Bug Fixes, Robustness and Statistics

62 bugs and enhancement requests have been implemented for the TCF 1.4 release.

See also TCF on OpenHUB and the TCF Project Page for statistics.

The TCF project team would like to take this opportunity to thank our 17 contributors in the past 12 months as per the approved IP Log for TCF 1.4 !

The searchable git logs for the agent and the TCF main repository provide more insight into all changes made for TCF 1.4.

Back to the top