From e380c8ea03d2ea2f35fe4fee83a8a1cb75afc4de Mon Sep 17 00:00:00 2001
From: Sebastien Marineau
Date: Fri, 13 Jun 2003 22:29:43 +0000
Subject: [PATCH] This is the raw content from QNX's Momentics guide, being
donated to the CDT project.
---
.../raw/hackedguide/about.html | 115 +++
.../raw/hackedguide/cdev.html | 812 +++++++++++++++
.../raw/hackedguide/conc.html | 273 +++++
.../raw/hackedguide/cvs.html | 130 +++
.../raw/hackedguide/cwiz.html | 470 +++++++++
.../raw/hackedguide/dbug.html | 942 ++++++++++++++++++
.../raw/hackedguide/image-lib/caution.gif | Bin 0 -> 1175 bytes
.../raw/hackedguide/image-lib/onestep.gif | Bin 0 -> 978 bytes
.../raw/hackedguide/image-lib/pointing.gif | Bin 0 -> 174 bytes
.../raw/hackedguide/images/cwiz.jpg | Bin 0 -> 37591 bytes
.../raw/hackedguide/images/cwiz_c.jpg | Bin 0 -> 25742 bytes
.../images/cwiz_c_architecture.jpg | Bin 0 -> 39198 bytes
.../images/cwiz_c_buildsettings.jpg | Bin 0 -> 34696 bytes
.../raw/hackedguide/images/cwiz_c_library.jpg | Bin 0 -> 36644 bytes
.../raw/hackedguide/images/cwiz_c_options.jpg | Bin 0 -> 33662 bytes
.../hackedguide/images/cwiz_c_projects.jpg | Bin 0 -> 35923 bytes
.../raw/hackedguide/images/cwiz_convert_1.jpg | Bin 0 -> 37851 bytes
.../raw/hackedguide/images/cwiz_target.jpg | Bin 0 -> 43826 bytes
.../raw/hackedguide/images/editor_c.jpg | Bin 0 -> 37492 bytes
.../images/editor_c_codetemplates_use.jpg | Bin 0 -> 41261 bytes
.../images/editor_c_contentassist.jpg | Bin 0 -> 42032 bytes
.../images/editor_c_helloworld.jpg | Bin 0 -> 20767 bytes
.../hackedguide/images/editor_c_hoverhelp.jpg | Bin 0 -> 34016 bytes
.../raw/hackedguide/images/findit | 13 +
.../raw/hackedguide/images/first_look.jpg | Bin 0 -> 111220 bytes
.../images/icon_breakpoint_obj.gif | Bin 0 -> 140 bytes
.../raw/hackedguide/images/icon_debug_exc.gif | Bin 0 -> 166 bytes
.../images/icon_debugger_console.gif | Bin 0 -> 166 bytes
.../hackedguide/images/icon_debugt_obj.gif | Bin 0 -> 179 bytes
.../hackedguide/images/icon_disassembly.gif | Bin 0 -> 161 bytes
.../hackedguide/images/icon_disconnect.gif | Bin 0 -> 146 bytes
.../raw/hackedguide/images/icon_error_obj.gif | Bin 0 -> 159 bytes
.../hackedguide/images/icon_filter_tsk.gif | Bin 0 -> 159 bytes
.../hackedguide/images/icon_installed_ovr.gif | Bin 0 -> 80 bytes
.../hackedguide/images/icon_memory_update.gif | Bin 0 -> 568 bytes
.../raw/hackedguide/images/icon_menu.gif | Bin 0 -> 88 bytes
.../hackedguide/images/icon_newccqnx_app.gif | Bin 0 -> 586 bytes
.../hackedguide/images/icon_newccqnx_lib.gif | Bin 0 -> 364 bytes
.../hackedguide/images/icon_newcqnx_app.gif | Bin 0 -> 582 bytes
.../hackedguide/images/icon_newcqnx_lib.gif | Bin 0 -> 381 bytes
.../images/icon_next_error_nav.gif | Bin 0 -> 160 bytes
.../images/icon_prev_error_nav.gif | Bin 0 -> 160 bytes
.../raw/hackedguide/images/icon_relaunch.gif | Bin 0 -> 216 bytes
.../hackedguide/images/icon_remove_all.gif | Bin 0 -> 117 bytes
.../raw/hackedguide/images/icon_restart.gif | Bin 0 -> 182 bytes
.../raw/hackedguide/images/icon_resume.gif | Bin 0 -> 128 bytes
.../raw/hackedguide/images/icon_run_exc.gif | Bin 0 -> 125 bytes
.../hackedguide/images/icon_stackframe.gif | Bin 0 -> 100 bytes
.../images/icon_stackframe_running.gif | Bin 0 -> 149 bytes
.../raw/hackedguide/images/icon_stepinto.gif | Bin 0 -> 144 bytes
.../raw/hackedguide/images/icon_stepover.gif | Bin 0 -> 159 bytes
.../hackedguide/images/icon_stepreturn.gif | Bin 0 -> 144 bytes
.../raw/hackedguide/images/icon_suspend.gif | Bin 0 -> 102 bytes
.../raw/hackedguide/images/icon_terminate.gif | Bin 0 -> 109 bytes
.../hackedguide/images/icon_terminate_all.gif | Bin 0 -> 130 bytes
.../hackedguide/images/icon_terminate_rem.gif | Bin 0 -> 159 bytes
.../raw/hackedguide/images/icon_thread1.gif | Bin 0 -> 162 bytes
.../raw/hackedguide/images/icon_thread2.gif | Bin 0 -> 215 bytes
.../raw/hackedguide/images/icon_thread3.gif | Bin 0 -> 212 bytes
.../raw/hackedguide/images/icon_tnames.gif | Bin 0 -> 181 bytes
.../hackedguide/images/icon_warning_obj.gif | Bin 0 -> 139 bytes
.../images/icon_watchpoint_read_obj.gif | Bin 0 -> 156 bytes
.../images/icon_watchpoint_readwrite_obj.gif | Bin 0 -> 231 bytes
.../images/icon_watchpoint_write_obj.gif | Bin 0 -> 159 bytes
.../raw/hackedguide/images/lnch.jpg | Bin 0 -> 65022 bytes
.../raw/hackedguide/images/lnch_arguments.jpg | Bin 0 -> 60651 bytes
.../raw/hackedguide/images/lnch_common.jpg | Bin 0 -> 61972 bytes
.../raw/hackedguide/images/lnch_customize.jpg | Bin 0 -> 49930 bytes
.../hackedguide/images/lnch_debug_debug.jpg | Bin 0 -> 25295 bytes
.../raw/hackedguide/images/lnch_debugger.jpg | Bin 0 -> 58753 bytes
.../hackedguide/images/lnch_environment.jpg | Bin 0 -> 63658 bytes
.../raw/hackedguide/images/lnch_main.jpg | Bin 0 -> 65379 bytes
.../hackedguide/images/lnch_run2_faster.jpg | Bin 0 -> 22266 bytes
.../raw/hackedguide/images/lnch_run_run.jpg | Bin 0 -> 26132 bytes
.../images/persp_dbug_properties_options.jpg | Bin 0 -> 42118 bytes
.../hackedguide/images/view_breakpoints.jpg | Bin 0 -> 11146 bytes
.../images/view_breakpoints_added.jpg | Bin 0 -> 27495 bytes
.../images/view_breakpoints_adding.jpg | Bin 0 -> 27588 bytes
.../images/view_breakpoints_disable.jpg | Bin 0 -> 31503 bytes
.../images/view_breakpoints_prop.jpg | Bin 0 -> 19741 bytes
.../images/view_breakpoints_watch_add.jpg | Bin 0 -> 12063 bytes
.../raw/hackedguide/images/view_cbuild.jpg | Bin 0 -> 135021 bytes
.../images/view_cbuild_configurations.jpg | Bin 0 -> 36766 bytes
.../raw/hackedguide/images/view_console.jpg | Bin 0 -> 18891 bytes
.../hackedguide/images/view_console_gdb.jpg | Bin 0 -> 38052 bytes
.../images/view_console_gdb_using.jpg | Bin 0 -> 30334 bytes
.../images/view_console_helloworld.jpg | Bin 0 -> 15877 bytes
.../raw/hackedguide/images/view_cprojects.jpg | Bin 0 -> 16545 bytes
.../images/view_cprojects_building.jpg | Bin 0 -> 27046 bytes
.../images/view_cprojects_filter.jpg | Bin 0 -> 16496 bytes
.../view_cprojects_outline_executable.jpg | Bin 0 -> 24436 bytes
.../images/view_cprojects_outline_source.jpg | Bin 0 -> 15753 bytes
.../images/view_cprojects_target_add.jpg | Bin 0 -> 11010 bytes
.../images/view_cprojects_target_use.jpg | Bin 0 -> 33421 bytes
.../raw/hackedguide/images/view_debug.jpg | Bin 0 -> 30339 bytes
.../images/view_debug_runtoline.jpg | Bin 0 -> 58190 bytes
.../hackedguide/images/view_expressions.jpg | Bin 0 -> 13342 bytes
.../images/view_expressions_add.jpg | Bin 0 -> 8659 bytes
.../raw/hackedguide/images/view_memory.jpg | Bin 0 -> 70162 bytes
.../hackedguide/images/view_memory_change.jpg | Bin 0 -> 47147 bytes
.../images/view_memory_configure.jpg | Bin 0 -> 93858 bytes
.../raw/hackedguide/images/view_outline.jpg | Bin 0 -> 8486 bytes
.../raw/hackedguide/images/view_registers.jpg | Bin 0 -> 22796 bytes
.../raw/hackedguide/images/view_tasks.jpg | Bin 0 -> 33764 bytes
.../images/view_tasks_filter_tasks.jpg | Bin 0 -> 41211 bytes
.../images/view_tasks_new_tasks.jpg | Bin 0 -> 21865 bytes
.../raw/hackedguide/images/view_variables.jpg | Bin 0 -> 11136 bytes
.../images/view_variables_customize.jpg | Bin 0 -> 44263 bytes
.../window_preferences_c_codetemplates.jpg | Bin 0 -> 65851 bytes
.../images/window_preferences_workbench.jpg | Bin 0 -> 47675 bytes
.../raw/hackedguide/lnch.html | 457 +++++++++
111 files changed, 3212 insertions(+)
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/about.html
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/cdev.html
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/conc.html
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/cvs.html
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/cwiz.html
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/dbug.html
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/image-lib/caution.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/image-lib/onestep.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/image-lib/pointing.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/cwiz.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/cwiz_c.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/cwiz_c_architecture.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/cwiz_c_buildsettings.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/cwiz_c_library.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/cwiz_c_options.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/cwiz_c_projects.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/cwiz_convert_1.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/cwiz_target.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/editor_c.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/editor_c_codetemplates_use.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/editor_c_contentassist.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/editor_c_helloworld.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/editor_c_hoverhelp.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/findit
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/first_look.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_breakpoint_obj.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_debug_exc.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_debugger_console.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_debugt_obj.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_disassembly.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_disconnect.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_error_obj.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_filter_tsk.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_installed_ovr.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_memory_update.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_menu.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_newccqnx_app.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_newccqnx_lib.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_newcqnx_app.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_newcqnx_lib.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_next_error_nav.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_prev_error_nav.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_relaunch.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_remove_all.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_restart.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_resume.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_run_exc.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_stackframe.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_stackframe_running.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_stepinto.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_stepover.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_stepreturn.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_suspend.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_terminate.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_terminate_all.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_terminate_rem.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_thread1.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_thread2.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_thread3.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_tnames.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_warning_obj.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_watchpoint_read_obj.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_watchpoint_readwrite_obj.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/icon_watchpoint_write_obj.gif
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/lnch.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/lnch_arguments.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/lnch_common.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/lnch_customize.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/lnch_debug_debug.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/lnch_debugger.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/lnch_environment.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/lnch_main.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/lnch_run2_faster.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/lnch_run_run.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/persp_dbug_properties_options.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_breakpoints.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_breakpoints_added.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_breakpoints_adding.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_breakpoints_disable.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_breakpoints_prop.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_breakpoints_watch_add.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_cbuild.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_cbuild_configurations.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_console.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_console_gdb.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_console_gdb_using.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_console_helloworld.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_cprojects.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_cprojects_building.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_cprojects_filter.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_cprojects_outline_executable.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_cprojects_outline_source.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_cprojects_target_add.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_cprojects_target_use.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_debug.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_debug_runtoline.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_expressions.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_expressions_add.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_memory.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_memory_change.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_memory_configure.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_outline.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_registers.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_tasks.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_tasks_filter_tasks.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_tasks_new_tasks.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_variables.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/view_variables_customize.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/window_preferences_c_codetemplates.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/window_preferences_workbench.jpg
create mode 100644 doc/org.eclipse.cdt.doc.user/raw/hackedguide/lnch.html
diff --git a/doc/org.eclipse.cdt.doc.user/raw/hackedguide/about.html b/doc/org.eclipse.cdt.doc.user/raw/hackedguide/about.html
new file mode 100644
index 00000000000..5ee8cf34cec
--- /dev/null
+++ b/doc/org.eclipse.cdt.doc.user/raw/hackedguide/about.html
@@ -0,0 +1,115 @@
+
+
+
+
+
+About This Guide
+
+
+
+
+
+
+
+
+
+The C/C++ Development Tools (CDT) User's Guide describes the components
+of the CDT Eclipse plugins that are available as part of the Eclipse project. This guide
+describes how to use the CDT tools environment to build your C/C++ based applications.
+
+
+
+The following may help you find information quickly:
+
+
+
+
+
+
+This book is organized so you can learn what you need to know quickly and easily. Each chapter has these common sections:
+
+
+- The overview gives you a quick synopsis of what you're about to learn.
+
+- The suggested reading section tells you what you should know before starting each chapter.
+
+- The related information section gives you a quick list of the supporting material, including tutorials and movies. Some are marked "recommended."
+
+- The "How ... works" section gives you an idea of what's happening "underneath the covers" -- how the IDE, the host, and the target work together.
+
+The tutorials are in a separate guide so you can print and use them side by side with the corresponding chapters in this guide.
+
+
+
+
+
+
+
+This guide assumes the following:
+
+
+
+
+- You've already installed the base Eclipse components.
+- You've installed the C/C++ Development Tools (CDT) plugin feature.
+- You can write code in C or C++.
+
+
+
+
+In our documentation, we use a forward slash
+(/) as a delimiter in all pathnames,
+including those pointing to Windows files.
+
+
+
+We also generally follow POSIX/UNIX filesystem conventions.
+
+
+
+
+
+
+
+
diff --git a/doc/org.eclipse.cdt.doc.user/raw/hackedguide/cdev.html b/doc/org.eclipse.cdt.doc.user/raw/hackedguide/cdev.html
new file mode 100644
index 00000000000..76b5c2c6bff
--- /dev/null
+++ b/doc/org.eclipse.cdt.doc.user/raw/hackedguide/cdev.html
@@ -0,0 +1,812 @@
+
+
+
+
+
+Developing C/C++ Programs
+
+
+
+
+
+
+
+
+
+
+
+
+
+The C/C++ Development perspective is probably the perspective
+where you'll spend most of your time. In it, you'll develop and build
+your programs. As you move further through your project, you'll likely
+use this perspective as the jump point for doing your debugging, program
+analysis, and target system integration.
+
+
+Suggested prior reading:
+
+
+
+Related information:
+
+
+In this chapter:
+
+
+
+
+
+
+
+
+Before you begin C/C++ development, you must create a project to contain your code; in the IDE, all your work must be contained in projects.
+
+
+The views in the C/C++ Development perspective are driven primarily by selections you make in the C/C++ Editor and the C/C++ Projects view, a specialized version of the Navigator view. Ensure you understand their functionality thoroughly.
+
+
+
+
+
+In addition to perspectives and views, the IDE has two major "sections": wizards and the Launch Configurations dialog. To create and run your first program, you need both. The wizards let you quickly create a new project; the Launch Configurations dialog lets you set up how your program runs.
+Once you've used all these parts of the IDE for the first time, you'll be able to create, build, and run your programs very quickly. For more information, see the Common Wizards and Starting Your Programs chapters.
+
+
+The C/C++ Development perspective also has many features that help you develop code quickly. Once you've learned the basics of creating programs and running them (in this chapter), take some time to browse through this chapter.
+
+
+
+
+
+
+
+The C/C++ Projects view is probably the most important view in the IDE because you control your projects with it. The selections you make in the C/C++ Projects view greatly affect what information the other views display.
+
+
+The C/C++ Projects view offers a filtered and slightly rearranged version of the Navigator view.
+The Navigator view is part of the core Eclipse platform, so some of the features are documented there:
+
+
+
+- For information about the Navigator view toolbar and icons, follow these links in the Workbench User Guide: Concepts-->Views-->Navigator view.
+
+
+- For information about the right-click context menu in the Navigator view, follow these links in the Workbench User Guide: Reference-->User interface information-->Views and Editors-->Navigator View.
+
+
+The C/C++ Projects view has many of the same features as the Navigator view, but is configured specifically for C and C++ development. At first glance, the two may seem identical, but the C/C++ Projects view:
+
+- shows only open C/C++ projects
+
+- pretends that the project's executables are stored in a virtual subdirectory called bin
+
+- for a library project, pretends that the project's libraries are in a virtual subdirectory called lib
+
+- hides certain files
+
+- includes Build Project and related commands in its right-click menu
+
+- gives an outline of *.c, *.cc, *.cpp, *.h, and binary files.
+
+
+
+
+
+To open files and display them in the editor area:
+
+
+ |
+In the C/C++ Projects view, double-click the file to be opened.
+The file -- even if it's executable -- opens in the editor area. |
+
+
+
+
+
+
+Because the C/C++ Projects view hides closed projects, you must use the Navigator view to open them.
+
+
+To open projects:
+
+
+ |
+In the Navigator view, right-click your project, and select Open Project.
+The project opens and appears in the C/C++ Projects view. |
+
+
+
+
+
+
+To filter files in the C/C++ Projects view:
+
+
+- In the C/C++ Projects view, click the menu dropdown button
.
+
+- Select Filter.
+ The File Filter dialog appears:
+
+- In the filter pane, select the types of files you wish to hide. The .* selection hides files that start with a period, such as .cdtproject and .project.
+
+- Click OK.
+ The C/C++ Projects view automatically refreshes and shows only the unfiltered file types.
+
+
+
+
+
+
+
+
+The C/C++ Projects view shows you the outline of .c, .cc, and .h files:
+
+This outline is similar to that found in the Outline view. To learn more about the Outline view, see the "Code synopsis (Outline view)" section in this chapter.
+
+The C/C++ Projects view shows you the outlines of executables as well. You can examine the structure of executables to see not only the functions that you declared and used in the file, but the elements that were called indirectly, such as malloc(), _init(), and errno:
+
+
+To view a file outline in the C/C++ Project view:
+
+
+ |
+In the C/C++ Projects view, click the "+" symbol to the left of any .c, .cc, or .h, or executable file. All the executables are grouped in the virtual bin directory. The tree expands to show the outline for that file. Click the "-" symbol to collapse the tree again. |
+
+
+
+
+
+
+
+@@@ NOTE I've left this in even though it is QNX specific, we would have to
+customize it to make it CDT generic
+
+
+If you're creating an application from scratch, you'll probably want to create a QNX C Application Project or a QNX C ++ Application Project.
+
+
+
+
+ |
+For examples of creating specific types of projects, see the Tutorials book. We recommend that you create a few tutorial projects before you do too much reading. Having hands-on experience with the IDE gives you a better context for what you read in this guide.
+
+
+For a complete explanation of all the C/C++ project types and options, see the Common Wizards chapter. |
+
+
+
+
+To create a "Hello World!" QNX C Application Project:
+
+
+- In the C/C++ Development perspective, click the Create a new QNX C Application Project button
.
+ The New Project dialog appears:
+
+- In the Name field, type a name for your project (e.g. myHelloWorldProject).
+
+- Click Next. The dialog displays the appropriate with tabs.
+
+- In the Options tab, enable Build debug version and Build release version:
+
+
+- Click Finish.
+ The IDE creates the project and displays the C file (e.g. myHelloWorldProject.c in the C Editor. It contains a working "Hello, World!" program:
+
+
+
+
+
+
+Once you've created your project, you can build it. The IDE uses the same make utility and makefiles used on the command line. The IDE can perform makes automatically or let you do them manually. When you do manual builds, you can also decide on the scope of the build.
+
+
+You can watch the progress and see the build information in the C-Build view. If building your programs generates any errors or warnings, you can see them in the Tasks view.
+This section includes:
+
+
+
+
+The IDE uses a number of terms to describe the scope of the build:
+
+
+
+
+- Build
+
+- Build only the components affected by modified files in that particular project (i.e. make all).
+
+- Clean
+
+- Delete all the built components (i.e. .o, .so, .exe, and so on) without building anything (i.e. make clean).
+
+- Rebuild
+
+- Build every component from scratch. A Rebuild is really a Clean followed by a Build (i.e. make clean; make all).
+
+
+
+
+
+
+
+By default, the IDE automatically rebuilds every time you change a resource (e.g. file). This is handy if you have only a few open projects and if they're small. As the projects get larger, this feature can become a bit of a hindrance. You may find that you prefer to turn autobuilding off.
+
+
+To turn off autobuilding:
+
+
+- From the main menu, select Window-->Preferences.
+
+- In the left pane, select Workbench.
+ The dialog displays your workbench preferences:
+
+- In the right pane, disable the Perform build automatically on resource modification option. The IDE now builds only when you ask it to.
+
+
+
+
+
+
+
+
+
+The IDE builds automatically every time you save a change. Thus, if you're using the default IDE configuration, you don't need to do anything. Even in this setting, you can build manually as well. Because the IDE always does incremental builds while in autobuild mode, you may wish to manually do a clean build to ensure you have fresh executables.
+
+
+
+Manual builds let you choose the scope of the build, as well as whether to do a Build, a Clean, or a Rebuild.
+
+
+
+The IDE lets you manually choose to rebuild all your open projects. Depending on the number of projects, the size of the projects, and the number of target architectures, this can take a significant amount of time.
+
+
+To rebuild all your open projects:
+
+
+ |
+From the main menu, select Project-->Rebuild All. |
+
+
+
+
+
+
+Because rebuilding all your open projects may be time-consuming, you may often wish to build only certain projects individually.
+
+
+To rebuild a single project:
+
+
+ |
+In the C/C++ Projects view, right-click a project and select one of:
+
+- Build
+
+- Rebuild
+
+- Clean.
+
+The IDE builds the selected project as you desired. For more information on the build methods, see the "Build terminology" section in this chapter. 
|
+
+
+
+
+
+
+To have the IDE save your unsaved resources before manual builds:
+
+
+- From the main menu, select Window-->Preferences.
+
+- In the left pane, select Workbench.
+
+- In the right pane, enable the Save all modified resources automatically prior to manual build option.
+ The IDE saves your resources before it builds.
+
+
+
+
+
+The IDE lets you determine the build order of your projects. If certain projects must be built before others, you can set that. If your project refers to another project, the IDE builds that project first.
+
+
+
+
+
+ |
+Setting the build order doesn't cause the IDE to rebuild projects that depend on the project; you must rebuild all projects to ensure all the changes are propagated. |
+
+
+
+
+
+
+To manually configure the project build order:
+
+
+- From the main menu, select Window-->Preferences.
+
+- In the left pane, select Build Order.
+
+- Disable the Use default build order option.
+ You may now configure the build order as you desire. When you're done, click Apply, then OK.
+
+
+
+
+
+
+
+
+ |
+In this subsection, "targets" refer to actions in the makefiles, not target machines. |
+
+
+
+
+A make target is an action called by the make utility to perform a customized build-related task. For example, many makefiles support a target named clean, which gets called as make clean. The IDE lets you call your own target such as myMakeAction to be called as make myMakeAction. You can also use a make target to pass options such as CPULIST=x86, which causes the make utility to build only for x86. Of course, these options work only if they're already defined in the makefile.
+
+
+If you've added your own make targets, you can configure the IDE to call them specifically.
+
+
+To add a customized make target to the C/C++ Project view right-click menu:
+
+
+- In the C/C++ Projects view, right-click a project and select Add Make Targets.
+
+- Type the name of the make target (e.g. myMakeOption):
+
+- Click OK.
+ The target option appears in the right-click menu of the C/C++ Projects view.
+
+
+
+
+To use a customized make target:
+
+
+- In the C/C++ Projects view, right-click a project. The right-click context menu appears. If there are any customized make targets for your project, the Make item is selectable.
+
+- Choose your make target from the Make menu:
+

+
+
+
+
+
+@@@ Again the same thing applies here about stripping out the QNX
+specific information (ie regarding needing a target for launch) and
+replacing it with generic CDT information. I've much of it in for
+context.
+
+
+
+Once you've built your project, you'll want to run it. The IDE lets you
+run or debug your executables on either a local or a remote QNX Neutrino
+target machine. For a description of local and remote targets, see the
+IDE Concepts chapter.
+
+
+To run or debug your program, you must create a QNX Target System Project
+that specifies how the IDE communicates with your target. You must also create
+a Launch Configuration that describes how the program runs on your target.
+
+
+
+
+ |
+For a complete description of the Launch Configurations dialog and the available options, see the Starting Your Programs chapter. |
+
+
+
+To run your "Hello World!" QNX C Application Project:
+
+
+- In the C/C++ Projects view, select your project (e.g. myHelloWorldProject).
+
+- In the C/C++ Development perspective, click the dropdown menu
part of the run menu button set 
.
+
+- Select Run.
+ The Launch Configurations dialog appears:
+
+- In the left pane, select C/C++ QNX QConn (IP).
+
+- Click New.
+ The dialog displays the appropriate tabs:
+
+- In the Name field, type a meaningful name for your launch configuration (e.g. myHelloProject IP launch).
+ The IDE automatically fills in the Project field.
+
+- Click the Search button beside the C/C++ Application field.
+ The Program Selection dialog appears.
+
+
+
+ |
+If the Program Selection dialog is blank, you must cancel and build your project. To learn how to build projects, see the "Building projects (make)" section.
+ |
+
+
+
+
+
+- Select a program to run. The _g indicates it's compiled with debug symbols. If you wish to run on an x86 target, select myHelloWorldProject [x86le]
+
+- Click OK.
+
+- In the Target Options pane, select your target.
+
+- Click Run.
+ Your program runs. The IDE displays the output in the Console view. For example:
+
+
+
+
+
+
+
+Within the C/C++ Development perspective, the C/C++ Editor is where you'll likely spend the great majority of your time -- you use it to write and modify your code:
+
+The C/C++ Editor drives many of the other views. As you code, many of the other views update dynamically (even if you haven't saved).
+This section includes:
+
+
+
+
+The C/C++ Editor has a gray border on each side. The border on the left margin might contain icons that flag errors, warnings, or problems detected by the IDE. It also displays icons for any bookmarks, breakpoints, or tasks from the Tasks view. The icons in the left margin correspond to the line of code.
+The border on the right margin displays red and yellow bars that correspond to the errors and warnings from the Tasks view. Unlike the left margin, the right margin displays the icons for the entire length of the file.
+
+
+
+
+
+
+
+The IDE can help you finish the names of functions if they're long, or you can't remember the exact spelling.
+
+
+To use Content Assist:
+
+
+- In the C/C++ Editor, type at least the first letter of the function.
+
+- Press Ctrl-Space. (Or, right-click near the cursor and select Content Assist).
+ A menu with the available functions appears:
+
+- You may do one of the following:
+
+- Continue typing. The list shortens. When there's only one function that matches, it's automatically inserted.
+
+- Scroll with the up and down arrows. Press Enter to select the function.
+
+- Scroll with the mouse. Double-click a function to select it.
+
+- Press Esc to close the Content Assist window.
+
+
+
+
+
+
+
+
+
+The IDE can help you by inserting snippets of code such as an empty do-while structure. If you've used the Content Assist feature, you may have already noticed this feature; you access it the same way.
+
+
+To use Code Templates:
+
+
+ |
+Follow the procedure for using Content Assist, with the following exception:
+
+- If any code templates start with the letter combination you've typed, they appear first in the list and have a different icon:

+ |
+
+
+
+To add Code Templates:
+
+
+- From the main menu, select Window-->Preferences.
+
+- In the left pane, select C/C++-->Code Templates.
+
+- Click New.
+ A dialog for adding new templates appears. You can view the format of existing templates by selecting them and clicking Edit:

+
+
+
+
+
+To insert the #include directive for any documented QNX Neutrino function:
+
+
+- In the C/C++ Editor, highlight the entire function name by double-clicking it. Don't highlight the parentheses or any leading tabs or spaces.
+
+- Right-click and select Add Include.
+ The IDE automatically adds the #include statement to the top of the file, if it isn't already there.
+
+
+
+
+
+The IDE can give you information about functions while you're coding.
+
+
+To use hover help:
+
+
+ |
+In the C/C++ Editor, place your pointer over a function.
+A tag appears, showing the function summary and synopsis: 
|
+
+
+
+
+
+
+The IDE makes it easy to comment out large sections of code. You can quickly add // characters to the beginning of lines, letting you comment out large sections, even if they have /* */ comments.
+When you uncomment lines, the IDE removes the leading // characters from all lines that have them, so be careful not to accidentally uncomment sections. Also, the IDE comments or uncomments the selected lines -- if you select a partial line, the IDE comments out the entire line, not just the highlighted section of code.
+
+
+To comment or uncomment a block of code:
+
+
+- In the C/C++ Editor, highlight a section of code to be commented or uncommented. For one line, place your cursor on that line.
+
+- Right-click and select Comment or Uncomment.
+
+
+
+
+
+
+You can change the font, set the background color, display line numbers, and control many other visual aspects of the C/C++ Editor. You can also configure context highlighting, and change how the Code Assist feature works.
+
+
+To access the C/C++ Editor preferences dialog:
+
+
+- Select Window-->Preferences.
+ The Preferences dialog appears.
+
+- In the left pane, select C/C++-->C/C++ Editor.
+
+
+
+
+
+The IDE lets you use other editors, but you should consider the added functionality the C/C++ Editor offers before changing.
+
+
+The C/C++ Editor is highly integrated with the IDE. The other views are designed to support the C/C++ Editor by updating dynamically. Since other editors aren't designed to interface with the IDE, you won't get the support from the views that the IDE provides.
+
+
+You can use other editors either outside or inside the IDE.
+
+
+
+
+
+You can edit your code with an editor started outside of the IDE (e.g. from the command line). When you're done editing, you'll have to synchronize the IDE with the changes.
+
+
+To synchronize the IDE with changes you've made outside of the IDE:
+
+
+ |
+In the C/C++ Projects view, right-click the tree pane and select Refresh.
+The IDE updates to reflect any changes you've made (such as creating new files). |
+
+
+
+
+
+
+
+
+The IDE lets you set file associations that determine the editor you use for each file type. For example, you can tell the IDE to use an external program such as WordPad to edit all .h files. Once that preference is set, you can double-click a file in the C/C++ Projects view, and the IDE automatically opens the file in your selected program.
+
+
+If the IDE doesn't have a set association for a certain file type, it uses the OS defaults. Thus, in Windows, double-clicking on a .DOC file automatically opens the file in MS Word or WordPad.
+
+
+For information about file associations, follow these links in the Eclipse Workbench User Guide: Reference-->Preferences-->File Associations.
+
+
+
+
+The IDE has many features that help you work faster. Not all the features are things you'd necessarily think to look for; after you've used the IDE for a while, take some time to read this entire section.
+
+
+This section includes:
+
+
+
+
+
+
+The Tasks view provides you with a list of errors and warnings related to your projects. These are typically syntax errors, typos, and other programming errors found by the compiler:
+
+
+
+The Tasks view is part of the core Eclipse platform. For more information about the Tasks view, follow these links in the Workbench User Guide: Reference-->User interface information-->View and Editors-->Tasks view.
+
+
+The IDE also shows corresponding markers in several other locations:
+
+- C/C++ Projects view: on both the file that contained compile errors and the project
+
+- Outline view: in the method (e.g. main())
+
+- C/C++ Editor: on the left side, beside the offending line of code.
+
+
+
+
+To quickly jump to the source of errors (if the IDE can determine where it is):
+
+
+ |
+In the Tasks view, double-click the error marker or warning marker .
+The file opens in the editor area, and the cursor jumps to the offending line. |
+
+
+
+
+
+To jump to errors sequentially:
+
+
+ |
+Click the Jump to next error marker button or Jump to previous error marker button . |
+
+
+
+
+
+
+Depending on the complexity and stage of your program, the IDE can generate an overwhelming number of errors. The IDE lets you customize the Tasks view so you see only the errors you want to see.
+
+
+To access the error filtering dialog:
+
+
+
+
+
+
+
+The Tasks view lets you create your own tasks. In addition to having the Tasks view automatically list build errors, you can set personal reminders regarding the unfinished function you're writing, the error handling routine you want to check, or anything else.
+
+
+To access the New Tasks dialog to add a personal task:
+
+
+ |
+In the Tasks view, right-click the tasks pane and select New Task.
+A New Tasks dialog appears: 
|
+
+
+
+To remove a personal task:
+
+
+ |
+In the Tasks view, right-click the task and select one of Delete or Mark Completed. |
+
+
+
+
+
+
+
+
+The Outline view gives you a structural view of your C/C++ source code:
+
+ It shows the elements in the source file in the order they occur, including functions, libraries, and variables. You may also sort the list alphabetically. If you double-click an entry in the Outline view, the C/C++ Editor moves the cursor to the start of the item selected. (For example, to jump to the start of main() in the C/C++ Editor, double-click main() in the Outline view.)
+
+
+
+
+
+The IDE displays the output from the make utility in the C-Build view:
+
+
+
+
+
+
+You can choose to clear the C-Build view before each new build or let the results of each subsequent build to append to the display. You can have the C-Build view brought to the top when you build.
+
+
+To access the C-Build view configurations:
+
+
+- From the main menu, select Window-->Preferences.
+
+- In the left pane, select C/C++:

+
+
+
+
+
+
+
+
+
diff --git a/doc/org.eclipse.cdt.doc.user/raw/hackedguide/conc.html b/doc/org.eclipse.cdt.doc.user/raw/hackedguide/conc.html
new file mode 100644
index 00000000000..915c47f13f1
--- /dev/null
+++ b/doc/org.eclipse.cdt.doc.user/raw/hackedguide/conc.html
@@ -0,0 +1,273 @@
+
+
+
+
+
+IDE Concepts
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This chapter introduces a number of terms and concepts that are used throughout this
+guide and the core Eclipse documentation.
+Related information:
+
+- the Workbench User Guide: Concepts in the Eclipse documentation
+
+
+In this chapter:
+
+
+
+
+The workbench is the window that appears when you run the IDE. It includes:
+
+- views
+
+- editors
+
+- the main menu
+
+- the control bars.
+
+
+
+
+
+
+
+
+
+Major components of the IDE workbench.
+
+
+
+
+
+
+
+
+ |
+Eclipse is written in JAVA and is interpreted by a Java Virtual Machine (JVM)
+that's specific to the host OS. So, whether you run Eclipse on Windows,
+QNX Neutrino, or Solaris, you're running the same code. However, you might
+notice some differences in the user interface. |
+
+
+
+
+The CDT provides a graphical development environment for C and C++
+developers. The CDT works in a complimentary manner with many of the
+same tools that you use on the command line. The CDT communicates with
+and interprets messages from many utilities, including:
+
+- make
+(which drives compilers such as gcc)
+
+- gdb
+
+- ctags
+
+
+
+
+
+
+
+A perspective is a task-oriented configuration of the workbench window.
+
+
+For example, if you're debugging, you use the preconfigured Debug
+perspective. This perspective sets up the IDE to show all the tools related to
+debugging, but doesn't show the elements and tools related to profiling, for example.
+You can customize a perspective by adding and removing views.
+
+Perspectives generally consist of these components:
+
+- toolbars
+
+- editors
+
+- views
+
+
+
+
+
+
+Editors are what you use to change the content of your files. Each editor
+in the IDE is for a specific set of files. The editor that you'll likely use
+the most for C and C++ development is the C/C++ Editor.
+
+
+Views take information and organize it in various convenient ways.
+For example, the Outline view shows you a list of all the function
+names when you're editing a C file in the C/C++ Editor.
+The Outline view is dynamic; if you declare a function called mynewfunc(), the Outline view immediately lists it, even if you haven't saved the file yet.
+Views provide:
+
+- insight into editor contents (e.g. Outline view)
+
+- navigation (e.g. Navigator view)
+
+- information (e.g. Tasks view)
+
+- control (e.g. Debug view).
+
+
+
+
+Different views may show you different interpretations of the same
+information. For example, the Navigator view shows all
+your projects; the C/C++ Projects view shows just the
+C and C++ projects you have open.
+
+
+The editor area is a section of the workbench window reserved for editors. All the editors live together in the editor area; all the views can be anywhere except in the editor area.
+
+
+The IDE lets you rearrange views and editors so they're beside each other (tiled) or stacked on top of each other (tabbed), among other possibilities.
+
+
+To see how dynamic the interface is, see the Perspectives, Views, and Editors movie.
+
+
+
+
+
+Projects are generic containers for your source code, makefiles,
+and binaries. Before you do any work in the IDE, you must create projects to
+store your work. Developers using the CDT will most ofent work with C Project.
+Projects can be open or closed. If they're closed, you can't access them.
+When you create a file within a project, the IDE also creates a record
+(local history) of every time you changed that file and how you changed it.
+
+
+Your workspace is where you keep your projects. For the exact location of your workspace, see the appendix Where Files Are Stored.
+
+
+
+
+ |
+Don't use spaces in projects and filenames; they can cause problems with some tools, such as the make utility.
+ Also, don't use case alone to distinguish files and projects; Unix-based OS filenames are case-sensitive, but Windows filenames aren't. Thus, Hello.c and hello.c overwrite each other in Windows, but are separate files elsewhere. |
+
+
+
+
+
+
+
+The IDE associates projects with natures, tags that tell the IDE about the properties of each project.
+
+
+The IDE doesn't support nested projects; each project must be organized as a discrete entity. The IDE does support project dependencies by allowing a project to reference other projects that reside in your workspace.
+
+
+The most common projects look like this to the IDE:
+
+
+
+Project |
+Associated natures |
+
+
+Simple Project |
+ |
+
+
+Standard Make C Application Project |
+C |
+
+
+Standard Make C++ Application Project |
+C, C++ |
+
+
+
+The natures tell the IDE what can and can't be done with each project. The IDE also uses the natures to filter out projects that would be contextually irrelevant (e.g. nonlibrary projects from a list of library projects).
+
+
+In this guide, you'll see mixed references such as:
+
+- QNX C/C++ Applications -- refers to both QNX C Application Projects and QNX C++ Application Projects.
+
+- QNX Library Projects -- refers to both QNX C Library Projects and QNX C++ Library Projects.
+
+The IDE saves these natures and other information in .project and .cdtproject files in each project. To ensure the natures persist in CVS, include these files when you commit your project.
+
+
+
+
+
+
+
+Before you run any program, you must use the launcher to specify what
+program to run, what arguments to pass to the program, and so on.
+
+
+If you want to run the program with different you can either modify
+an existing launch configuration or create a new Launch Configuration.
+Once you save the Launch Configuration, you can quickly rerun
+each configuration.
+
+
+
+
+
+Resources is a collective term for projects, folders, and files that exist in the workbench. You store all your resources in your workspace.
+
+
+
+Wizards guide you through a sequenced set of tasks. For example, to create a QNX C Application Project, you run a wizard that takes you through all the steps and gathers all the necessary information before creating the project. For more information, see the Common Wizards chapter.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/org.eclipse.cdt.doc.user/raw/hackedguide/cvs.html b/doc/org.eclipse.cdt.doc.user/raw/hackedguide/cvs.html
new file mode 100644
index 00000000000..3e63d6c5726
--- /dev/null
+++ b/doc/org.eclipse.cdt.doc.user/raw/hackedguide/cvs.html
@@ -0,0 +1,130 @@
+
+
+
+
+
+Source Control
+
+
+
+
+
+
+
+
+
+If you use CVS, you can check code in and out without leaving the IDE.
+
+
+Related information:
+
+- the Source Control movie (recommended)
+
+- the following links in the Eclipse Workbench User Guide: Tasks-->Working in the team environment-->Working with a CVS repository (recommended)
+
+
+Suggested prior reading:
+
+
+In this chapter:
+
+
+
+
+The CVS Repository Exploring perspective lets you bring code from CVS into your workspace.
+While you're working on your code, the IDE automatically keeps track of the changes you make; it lets you roll back to an earlier version of a file that you saved but didn't commit to CVS. If another developer changes the source in CVS while you're working on it, the IDE helps you synchronize with CVS and resolve any conflicts. Finally, the CVS Repository Exploring perspective lets you check the modified code back into CVS.
+
+
+
+
+ |
+The IDE stores project information in .project and .cdtproject
+files; you must include them with your project when you commit it to CVS. Otherwise,
+you must manually set the nature of the project (e.g. Standard C Project).
+For more information about setting project natures, see the Common
+Wizards chapter. |
+
+
+
+
+Unlike many other components of the IDE, the CVS Repository Exploring perspective doesn't connect to a utility. Instead of connecting via the cvs utility, the IDE uses its own engine to connect directly to your CVS repository.
+
+
+Because the CVS Repository Exploring perspective is a core Eclipse feature, we've covered the perspective only lightly in this book. For more information, follow these links the Eclipse Workbench User Guide: Tasks-->Working in the team environment.
+
+
+This table may help you find information more easily:
+
+
+
+If you want to:
+ |
+See: |
+
+
+Connect to a CVS repository
+ |
+Tasks-->Working in the team environment-->Working with a CVS repository-->Creating a CVS repository location |
+
+
+Check code out of a CVS repository
+ |
+Tasks-->Working in the team environment-->Working with projects shared with CVS-->Checking out a project from a CVS repository |
+
+
+Synchronize with a CVS repository
+ |
+Tasks-->Working in the team environment-->Synchronizing with the repository, especially the Updating section |
+
+
+Resolve CVS conflicts
+ |
+Tasks-->Working in the team environment-->Synchronizing with the repository-->Resolving conflicts
+ |
+
+
+Prevent certain files from being committed to CVS
+ |
+Tasks-->Working in the team environment-->Synchronizing with the repository-->Version control life cycle: adding and ignoring resources
+
+ |
+
+
+Create and apply a patch
+ |
+Tasks-->Working in the team environment-->Working with patches |
+
+
+Track code changes that haven't been committed to CVS
+ |
+Tasks-->Working with local history, especially the Comparing resources with the local history section |
+
+
+View an online FAQ about the CVS Repository Exploring perspective
+ |
+Reference-->Team Support-->CVS |
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/org.eclipse.cdt.doc.user/raw/hackedguide/cwiz.html b/doc/org.eclipse.cdt.doc.user/raw/hackedguide/cwiz.html
new file mode 100644
index 00000000000..cb364e3f12b
--- /dev/null
+++ b/doc/org.eclipse.cdt.doc.user/raw/hackedguide/cwiz.html
@@ -0,0 +1,470 @@
+
+
+
+
+
+Common Wizards
+
+
+
+
+
+
+
+
+
+
+
+
+In this chapter:
+
+
+
+
+
+Wizards guide you through a sequenced set of tasks. In the IDE, these tasks may
+be creating something new (e.g. a project) or converting one thing to another
+(e.g. converting to a Standard C project). Most often, you use wizards to create
+new projects and folders.
+
+
+Wizards aren't directly connected to any perspective, though you're more likely to call them from some perspectives than from others (most likely from the C/C++ Development perspective).
+You can access all the wizards from the main menu by selecting File-->New. The File-->New-->Project selection filters out all the wizards except projects; File-->New-->Other doesn't filter anything. (The exception to this is Target System Project, which, while labeled as a project, isn't a project as far as the IDE is concerned.)
+In the New Project dialog, the wizards are further sorted: selecting C in the left pane displays all the projects with a C nature in the IDE; selecting QNX in the left pane shows all the projects with a QNX nature:
+
+ Notice the overlap: the QNX C Application Project wizard appears in the right pane for both C and QNX.
+
+
+So-called "simple" wizards show the very basic elements of projects: Project, Folder, and File. These elements have no natures associated with them. You can access the wizards for these by selecting File-->New-->Other, then selecting Simple from the left pane.
+
+
+
+
+ |
+Although projects may appear as directories in your workspace, the IDE attaches special meaning to them. The IDE won't automatically recognize a directory you create in your workspace directory as a project.
+
+The IDE automatically recognizes directories and new files of any type if you create them outside of the IDE (i.e. using Windows Explorer) and place them in a project directory. To have the IDE recognize them, in the Navigator view, right-click the navigator pane and select Refresh. |
+
+
+
+
+
+
+
+The New Project wizard helps you create a C or C++ project.
+This section includes:
+
+
+
+
+The IDE lets you create a variety of projects, each with certain properties. Most of these projects are also subdivided into C or C++ projects:
+
+
+
+
+- Standard Make C Project
Standard Make C++ Project
+
+- A basic C or C++ project that uses a standard makefile and GNU make to build the source files. You don't get the added functionality provided by the QNX build organization and the common.mk file.
+
+
+
+
+
+
+To create a C/C++ project :
+
+
+
+
+- From the menu, select File-->New-->Project.
+The New dialog appears. Projects are filtered by the natures listed in the left pane.
+
+- In the left pane, select the nature in the table:
+
+
+If you want to build:
+ |
+Select: |
+
+
+Standard Make C Application Project
+ |
+C |
+
+
+QNX C Application Project
+ |
+C or QNX |
+
+
+QNX C Library Project
+ |
+C or QNX |
+
+
+Standard Make C++ Application Project
+ |
+C++ |
+
+
+QNX C++ Application Project
+ |
+C++ or QNX |
+
+
+QNX C++ Library Project
+ |
+C++ or QNX |
+
+
+
+
+
+- In the right pane, select the type of project that you want (e.g. QNX C Application Project).
+
+- Click Next.
+
+- Type a name for your project in the Name field.
+
+- Ensure that Use Default Location is checked. Don't use a different location.
+
+- Click Next.
+ The wizard displays the appropriate tabs.
+
+- Select each tab and fill in the required information. The fields for each tab are described in the "New C/C++ Project wizard tabs" section, below.
+
+- Click Finish.
+The IDE creates your new project in your workspace.
+
+
+
+
+
+ |
+In the C/C++ Development perspective, you can also access the QNX C/C++ Projects with the
+
+
+
+
+ buttons.
+ |
+
+
+
+
+
+
+
+Depending on the type of project you choose, the New Project wizard displays different tabs:
+
+
+
+
+
+Project Type
+ |
+Architecture tab, Options tab
+ |
+Projects tab, Build Settings tab
+ |
+Library tab
+
+ |
+
+
+Standard Make C Project or Standard Make C++ Project
+ |
+Yes
+ |
+No
+ |
+No
+
+ |
+
+
+QNX C Application Project or QNX C++ Application Project
+ |
+Yes
+ |
+Yes
+ |
+No
+
+ |
+
+
+QNX C Library Project or QNX C++ Library Project
+ |
+Yes
+ |
+Yes
+ |
+Yes
+
+ |
+
+
+
+
+
+
+ |
+ You can find the default settings for the New Project wizard by selecting Window-->Preferences from the main menu. From the left pane, select C/C++, then New QNX Projects. |
+
+
+
+
+
+
+
+The Architecture tab lets you choose the platforms to compile executables for:
+
+For example, to build for a PowerPC platform, enable PPC (Big Endian).
+
+
+If you've already created a QNX Target System Project, you'll also see entries such as Doug [localhost - x 86]. These let you build specifically for a configured target. If you also enable X86 (Little Endian), the IDE builds only one executable, not two.
+
+
+You must choose at least one platform.
+
+
+
+
+
+The Projects tab lets you configure your preferred order of building:
+
+For example, if you associate myProject with mySubProject, the IDE builds mySubProject first during rebuilds. If you change mySubProject, the IDE doesn't automatically rebuild myProject.
+
+
+
+
+
+
+The Build Settings tab lets you configure how the IDE handles make errors and what command to use to build your project:
+
+
+
+
+
+
+- Build Settings
+- If you want the IDE to stop building when it encounters a make error, enable Stop on Error. Otherwise, enable Keep Going On Error.
+
+
+- Build Command
+- If you want the IDE to use the default make command, enable Use Default. If you want to use a different utility to build your project, disable Use Default and enter your own command in the Build Command field (e.g. C:\myCustomizedMakeProgram).
+
+
+
+
+
+
+
+The Options tab lets you choose what type of executables the IDE builds:
+
+
+
+
+
+- Build Type
+- To build a regular executable, enable Build release version. To build a debuggable executable, enable Build debug version (debug versions have _g appended to their filename).
+
+
+You must select at least one build type.
+
+
+
+- Build Options
+- To fully enable profiling with the QNX Application Profiler perspective, enable Build with Profiling. The IDE adds profiling code to all the versions selected in Build Types. See the Profiling Your Application chapter.
+
+
+
+
+
+The Library tab lets you choose the type of library you wish to build (e.g. Static library, Shared library):
+
+
+
+- Static library (libxx.a)
+
+- Combine binary object files (i.e. *.o) into an archive that will later be directly linked into an executable.
+
+
+- Shared library (libxx.so)
+
+- Combine binary objects together and join them so they are relocatable and can be shared by many processes. Shared libraries are named using the format libxx.so.version, where version is a number with a default of 1. The libxx.so file symlinks to the latest version.
+
+
+- Static library for shared objects (libxxS.a)
+
+- Same as static library, but using position-independent code (PIC). Use this for a library that will later be linked into a shared object. The System Builder uses these types of libraries to create new shared libraries that contain only the symbols that are absolutely required by a specific set of programs.
+
+
+- Shared library without export (xx.so)
+
+- A shared library without versioning. Generally, you manually open the library with the dlopen() function and look up specific functions with the dlsym() function.
+
+
+You must choose one of the options.
+
+
+
+
+
+
+You must create a Target System Project for every target you have. When you create a launch configuration, you have the option of adding a new target from within the Launch Configurations dialog. When you do, the IDE opens up the New Target System Project wizard.
+
+
+To create a new target:
+
+
+- From the menu, select File-->New-->Other.
+
+- In the left pane, select QNX.
+
+- In the right pane, select QNX Target System Project.
+
+- Click Next.
+ The New QNX Target System Project wizard appears:
+
+
+- Fill in the fields described below:
+
+
+- Target Name
+
+- Type a descriptive name for your QNX Target System Project.
+
+
+- Project contents
+
+- Enable Use default to store it in your workspace, or disable it and select another location in the Directory field.
+
+
+- QNX Connector Selection
+
+- Type the target connection in the Hostname or IP and Port fields. If you're running the IDE on a QNX Neutrino machine running qconn, make sure Use local QNX Connector is enabled; the IDE automatically fills in the connection information. (If you wish to connect to a different target, you may disable Use local QNX Connector and fill in the fields manually.)
+
+
+- Target Configuration
+
+- This section is for a future feature.
+
+
+
+
+
+
+- Click Finish.
+ Your new QNX Target System Project appears in the Navigator view. When you create a Launch Configuration, the target is listed under the Main tab in the Target Options pane.
+
+
+
+
+ |
+You can also reach the New Target System Project wizard by right-clicking in the Target Options pane and selecting Add target. |
+
+
+
+
+
+
+
+
+
+
+At various times, you may want to convert projects to give them a QNX nature. For example:
+
+- if other developers committed a project to CVS without the .project and .cdtproject files, the IDE won't recognize the project as a QNX project when you get it from CVS
+
+- you wish to turn a Standard Make C/C++ Project into a QNX C/C++ Application Project.
+
+The QNX nature causes the IDE to use QNX make tools and the QNX make structure when building them.
+
+The IDE lets you convert many projects in the same step, but the projects are all converted into projects of the same type.
+
+
+
+
+ |
+If you wish to convert a QNX Project back into a Standard Make C/C++ Project, you can use the Convert C/C++ Projects wizard. From the main menu, select File-->New-->Project. In the left pane, select C. In the right pane, select Convert to a C or C++ Project. |
+
+
+
+
+
+
+To convert to a QNX Project:
+
+
+- From the menu, select File-->New-->Project.
+
+- In the left pane, select QNX.
+
+- In the right pane, select Convert to a QNX Project:
+
+- Click Next.
+
+- Fill in the fields described below:
+
+
The fields let you to convert a selection of projects to one of the following types of projects:
+- QNX C Application Project
+
+- QNX C Library Project
+
+- QNX C++ Application Project
+
+- QNX C++ Library Project
+
+
+
+
+- Candidates for conversion
+- The IDE lists all the projects that can be converted. Check off all the projects you wish to convert.
+
+
+- Convert to C or C++
+- Select whether your projects are C or C++.
+
+
+- Convert to QNX project type
+- Select QNX Application Project or QNX Library Project, depending on whether or not your projects are applications or libraries.
+
+
+
+
+
+- Click Finish.
+
+
+
+
+
+
+
+
+
diff --git a/doc/org.eclipse.cdt.doc.user/raw/hackedguide/dbug.html b/doc/org.eclipse.cdt.doc.user/raw/hackedguide/dbug.html
new file mode 100644
index 00000000000..5d3a166c0e9
--- /dev/null
+++ b/doc/org.eclipse.cdt.doc.user/raw/hackedguide/dbug.html
@@ -0,0 +1,942 @@
+
+
+
+
+
+Debugging Programs
+
+
+
+
+
+
+
+
+
+
+Once you've written your program, you might need to debug it. The IDE debugger lets you detect and diagnose errors in your programs, whether they're running locally or remotely.
+Suggested prior reading:
+
+Related information:
+
+
+In this chapter:
+
+
+
+
+The debugger lets you see what's going on "inside" a program while it executes, and what it was doing at the moment it crashed or misbehaved.
+
+
+In order to use the full power of the Debug perspective, you must use executables compiled for debugging. These executables contain additional debug information that lets the debugger make direct associations between the source code and the binaries generated from that original source. The debuggable executables have _g appended to their filenames.
+
+
+The IDE debugger uses GDB as the underlying debug engine. It translates each GUI action into a sequence of GDB commands and processes the output from GDB to display the current state of the program being debugged.
+
+
+The views update only when the program is suspended.
+
+
+
+
+ |
+Editing the source after compiling causes the line numbering to be out of step because the debug information is tied directly to the source.
+Similarly, debugging optimized binaries can also cause unexpected jumps in the execution trace. |
+
+
+
+
+
+
+
+To debug a program, you must build an executable and launch the debugging session. Once you've launched your debugging session, you'll want to control the session.
+
+
+
+Although you can debug a regular executable, you get far more control by building debug variants of the executables. When you created your project, you may have already set the option to make the IDE build one. If so, you should have debuggable executables with _g appended to the filename. If not, you must set the IDE to build debug variants:
+
+
+- In the C/C++ Projects view (or the Navigator view), right-click the project and select Properties.
+
+- In the left pane, select QNX C/C++ Project.
+
+- In the right pane, select the Options tab.
+
+- Under Build Type, ensure Build debug version is enabled:
+
+- Click Apply.
+
+- Click OK.
+
+- If it's not done automatically, rebuild the project.
+
+
+For more information about setting project options, see the Common Wizards chapter.
+
+
+
+
+
+
+ |
+For a full description of starting your programs and the Launch Configurations options, see the Starting Your Programs chapter. |
+
+
+
+
+
+
+Once you've got a debuggable executable, you must create a launch configuration.
+
+
+To launch a debuggable executable:
+
+
+- From the main menu, select Run-->Debug. (This menu item appears by default in the C/C++ Development perspective. If it doesn't, or you wish to add it to another perspective, select Window-->Customize Perspective. In the left pane, select Other-->Launch. Enable Launch.)
+ The Launch Configurations dialog appears.
+
+- Create a launch configuration as you normally would, but don't click OK.
+
+- Select the Debugger tab.
+
+- Ensure Run program in debugger is selected.
+
+- Ensure Stop at main() on startup is enabled.
+
+- Click Apply.
+
+- By default, the IDE automatically changes to the Debug perspective when you debug a program. If the default is no longer set, or you wish to change to a different perspective when you debug, see the "Setting execution options (Launch Configurations tabs)" section in the Starting Your Programs chapter.
+
+- Click Debug.
+
+
+
+
+
+The Debug view shows a listing of your debug sessions and lets you run your code step-by-step. The IDE is powerful; you can simultaneously debug multiple processes, each with multiple threads.
+
+
+
+The Debug view lets you manage the debugging or running of a program in the workbench. This view displays the stack frame for the suspended threads for each target you're debugging. Each thread in your program appears as a node in the tree. The view displays the process for each program you're running.
+
+The Debug view shows the target information in a tree hierarchy as follows (shown here with a sample of the possible icons):
+
+
+
+Session item
+ |
+Description
+ |
+Possible icons |
+
+
+Launch instance
+ |
+Launch configuration name and launch type (e.g. Stack Builder [C/C++ QNX QConn (IP)])
+ |
+
+
+
+ |
+
+
+Debugger instance
+ |
+Debugger name and state (e.g. GDB Debugger (Breakpoint hit))
+ |
+
+
+ |
+
+
+Thread instance
+ |
+Thread number and state (e.g. Thread[1] (Suspended))
+ |
+
+
+
+
+ |
+
+
+Stack frame instance
+ |
+Stack frame number, function, filename, and file line number
+ |
+
+  |
+
+
+
+
+
+
+ |
+The number beside the thread label is a reference counter for the IDE, not a thread identification number (TID). |
+
+
+
+
+
+
+The IDE displays stack frames as child elements. It displays the reason for the suspension beside the target, such as end of stepping range, breakpoint hit, signal received, and so on. When a program exits, the IDE displays the exit code.
+
+
+The label includes the thread's state. In the example above, the label indicates that the thread was suspended because the program hit a breakpoint. You can't suspend only one thread in a process; when one thread is suspended, they all are.
+
+
+The Debug view also drives the C/C++ Editor; as you step through your program, the C/C++ Editor highlights the location of the execution pointer.
+
+
+
+
+
+After you start your debug execution, it stops (by default) in main() and waits for your input. (For information about changing this setting, see the "Debugger tab" section in the Starting Your Programs chapter.) You can control your debug execution in various ways, but they all rely on a core set of debug controls.
+
+
+
+The debug execution controls appear in the following places (though they don't all appear in any one place):
+
+- at the top of the Debug view as buttons
+
+- in the Debug view right-click context menu
+
+- in the main menu under Run (with hotkeys)
+
+- in the C/C++ Editor.
+
+ The debug execution controls are superceded by breakpoints. For example, if you ask the program to step over a function (i.e. run until it finishes that function) and the program hits a breakpoint, it pauses, even though it hasn't finished the function.
+
+
+The icons and menu items are context-sensitive. For example, you can terminate a process, but you can't terminate a stack frame.
+
+
+
+Action
+ |
+Icon
+ |
+Hotkey
+ |
+Description
+ |
+
+
+Resume
+ |
+
+ |
+F8
+ |
+Run the process freely from current point
+
+ |
+
+
+Suspend
+ |
+
+ |
+
+
+ |
+Regain control of the running process
+ |
+
+
+Terminate
+ |
+
+ |
+
+
+ |
+Kill the process
+
+ |
+
+
+Restart
+ |
+
+ |
+
+
+ |
+Rerun the process from the beginning
+ |
+
+
+Step into
+ |
+
+ |
+F5
+ |
+Step forward one line, going into function calls
+
+ |
+
+
+Step over
+ |
+
+ |
+F6
+ |
+Step forward one line, not going into function calls
+
+ |
+
+
+Run to return
+ |
+
+ |
+F7
+ |
+Finish this function |
+
+
+
+
+
+
+You can control how many steps the program runs before it suspends again (if you want it to suspend at all). You'll probably use the Debug view primarily to control your program flow.
+
+
+To control your debug execution:
+
+
+
+- In the Debug view, select the thread you wish to control.
+
+- Click one of the debug stepping icons described in the "Debug execution controls" section, above.
+
+- Repeat step 2 as desired.
+
+- Finish the debug session by choosing one of the controls described in the "Debug launch controls" section in this chapter.
+
+
+
+
+
+If you're running your debug session without the Debug view showing, you can use either the hotkeys or the Run menu to step through your program. The customization works on a per-perspective basis; if you want to use the hotkeys in another perspective, you must enable them there, too.
+
+
+To enable the debug hotkeys:
+
+
+- Open the perspective you want to enable the hotkeys for.
+
+- From the menu, select Window-->Customize Perspective.
+
+- In the left pane, select Other-->Debug.
+
+- In the left pane, enable Debug.
+
+- Click OK.
+ The hotkeys are enabled for that particular perspective. You can also access the controls from the Run menu.
+
+
+
+
+
+
+You can control your debug session using the C/C++ Editor by having the program run until it hits the line your cursor is sitting on. (This is the same as the gdb until command.) If the program never hits that line, the program runs until it finishes.
+
+
+You enable this option on a per-perspective basis. The option is enabled by default in the Debug perspective.
+
+
+To enable debug execution using the C/C++ Editor:
+
+
+
+- From the menu, select Window-->Customize Perspective.
+
+- In the left pane, select Other-->C/C++ Debug.
+
+- In the left pane, enable C/C++ Debug.
+
+- Click OK.
+ The controls for debug execution in the C/C++ Editor are enabled for your active perspective.
+
+
+
+
+To debug using the C/C++ Editor:
+
+
+
+- In the C/C++ Editor, select a file associated with the process being debugged (e.g. myProgram.c).
+
+- Left-click to insert the cursor where you want to interrupt the execution.
+
+- Right-click near the cursor and select Run to C/C++ Line:
+

The program continues running until it hits that line.
+
+
+
+
+
+In addition to controlling the individual stepping of your programs, you can also control the debug session itself. You can perform actions such as terminating the session, stopping the program, and so on, using the debug launch controls available in the Debug view or in the Debug view's right-click context menu. As with the other debug controls, these are context-sensitive; some are disabled depending on whether you've selected a thread, a process, and so on, in the Debug view.
+
+
+
+
+Action
+ |
+Icon
+ |
+Description |
+
+
+Terminate
+ |
+
+ |
+Kill the selected process |
+
+
+Terminate & Remove
+ |
+
+ |
+Kill the selected process and remove it from the Debug view |
+
+
+Terminate All
+ |
+
+ |
+Kill all active processes in the Debug view |
+
+
+Disconnect
+ |
+
+ |
+Detach the debugger (i.e. gdb) from the selected process (useful for debugging attached processes) |
+
+
+Remove All Terminated Launches
+ |
+
+ |
+Clear all the killed processes from the Debug view |
+
+
+Relaunch
+ |
+
+ |
+Restart the process |
+
+
+
+
+
+
+When you're debugging, you can also examine your program as it steps into functions that you don't have source code for, such as printf(). Normally, the debugger steps over these functions, even when you click Step Into. When the instruction pointer enters functions for which it doesn't have the source, the IDE shows the function in the Assembly Editor.
+
+
+To step into assembler functions during debugging:
+
+
+ |
+In the Debug view, click the Disassembly Mode On/Off toggle button .
+ As you Step Into assembler functions, the IDE shows the execution trace in the Assembly Editor. |
+
+
+
+
+
+
+This section contains the following subsections:
+
+
+
+
+
+
+The Variables view displays information about the variables in the currently selected stack frame:
+
+ When the execution stops, the changed values are highlighted in red (by default). Like the other debug-related views, the Variables view doesn't try to keep up with the execution of a running program; it updates only when execution stops.
+
+
+You can set whether or not the variable type (e.g. int) is displayed by clicking the Show Type Names toggle button
.
+
+
+
+You can customize the look of the Variables view and set the color of changed variables (red by default).
+
+
+To access the Variables view preferences:
+
+
+- From the main menu, select Window-->Preferences.
+
+- In the left pane, select Debug-->Variables View:

+
+
+
+
+
+During the course of debugging, you may wish to artificially change the value of a variable to test how your program handles the setting or to speed through a loop.
+
+
+To change a variable value while debugging:
+
+
+
+- In the Variables view, right-click the variable and select Change Variable Value.
+
+- Enter the new value in the available field.
+
+
+
+
+
+The Breakpoints view lists all the breakpoints and watchpoints you've set in your open projects:
+
+
+
+A breakpoint makes your program stop whenever a certain point in the program is reached. For each breakpoint, you can add conditions to better control whether or not your program stops.
+
+
+A watchpoint is a special breakpoint that stops the program's execution whenever the value of an expression changes, without specifying where this may happen. Unlike breakpoints, which are line-specific, watchpoints are event-specific and take effect whenever a specified condition is true, regardless of when or where it occurred.
+
+
+
+
+Object
+ |
+Icon |
+
+
+Breakpoint
+ |
+ |
+
+
+Watchpoint (read)
+ |
+ |
+
+
+Watchpoint (write)
+ |
+ |
+
+
+Watchpoint (read and write)
+ |
+ |
+
+
+
+If the breakpoint or watchpoint is for a connected target, a check mark
is superimposed on the icon.
+
+
+
+The rest of this section describes how to:
+
+
+
+
+
+
+ |
+While the Breakpoints view displays both breakpoints and watchpoints, the procedures for setting them differ somewhat. |
+
+
+
+
+
+
+
+You set breakpoints on an executable line of a program. If the breakpoint is enabled when you debug, the execution suspends before that line of code executes.
+
+
+To add a breakpoint:
+
+
+- In the editor area, open the file that you want to add the breakpoint to (e.g. myProgram.c).
+
+- Notice that the left edge of the C/C++ Editor has a blank space called a marker bar.
+
+- Hover your pointer over the marker bar, beside the exact line of code where you want to add a breakpoint. Right-click the marker bar and select Add Breakpoint:

A dot
appears, indicating a breakpoint. A corresponding dot
also appears in the Breakpoints view, along with the name of the file in which you set the breakpoint:
+
+
+
+
+
+
+To add a watchpoint:
+
+
+- From the main menu, select Run-->Add C/C++ Watchpoint. (If this option isn't available, select Window-->Customize Perspective. In the left pane, select Other. Enable C/C++ Debug. Click OK.)
+ The Add C/C++ Watchpoint dialog appears:
+
+- Enter an expression in the Expression to watch field. The expression may be anything that can be evaluated inside an if statement. (e.g. y==1)
+
+- If you want the program to stop when it reads the watch expression, enable Read; to have the program stop when it writes the watch expression, enable Write. You must enable at least one.
+
+- Click OK.
+ The watchpoint appears in the Breakpoints view list.
+
+
+
+
+
+After you've set your breakpoint or watchpoint, the IDE unconditionally halts the program when:
+
+- it reaches a line of code that the breakpoint is set on
+
Or:
+
+- the expression specified by the watchpoint becomes true.
+
+
+
+To set the properties for a breakpoint or watchpoint:
+
+
+- In the Breakpoints view, right-click the breakpoint or watchpoint and select Properties. (Or for breakpoints only, in the C/C++ Editor, right-click the breakpoint and select Breakpoint Properties.)
+ The C/C++ Line Breakpoint Properties or C/C++ Watchpoint Properties dialog appears (they're very similar). You need to fill in at least one field:
+
+
+- In the Condition field, enter the Boolean expression to evaluate. The expression may be anything that can be evaluated inside an if statement (e.g. x > y ). The default is TRUE.
+
+- In the Ignore Count field, enter the number of times the breakpoint or watchpoint may be hit before it begins to take effect (not the number of times the condition is true). The default is 0.
+
+- Click OK.
+ When in debug mode, your program stops when it meets the conditions you've set for the breakpoint or watchpoint.
+
+
+
+
+
+You may wish to temporarily deactivate a breakpoint or watchpoint without losing the information it contains.
+
+
+To disable or enable a breakpoint or watchpoint:
+
+
+ |
+In the Breakpoints view, right-click the breakpoint or watchpoint and select Disable or Enable (Or for breakpoints only, right-click the breakpoint in the editor area and select Disable Breakpoint or Enable Breakpoint): 
|
+
+
+
+To disable or enable all (or many) breakpoints or watchpoints:
+
+
+
+
+- In the Breakpoints view, use any of the following methods:
+
+- Select breakpoints and watchpoints while holding down the Ctrl key.
+
+- Select a range of breakpoints and watchpoints while holding down the Shift key.
+
+- From the main menu, select Edit-->Select All.
+
+- Right-click in the Breakpoints view and select Select All.
+
+
+
+- Right-click the highlighted breakpoints and watchpoints and select Disable or Enable.
+
+
+
+
+
+
+
+To remove one or more breakpoints and watchpoints:
+
+
+
+
+
+
+To remove all breakpoints and watchpoints:
+
+
+
+
+ |
+In the Breakpoints view, right-click and select Remove All. |
+
+
+
+
+
+
+The Expressions view lets you evaluate and examine the value of expressions:
+
+
+
+
+To evaluate an expression:
+
+
+- From the menu, select Run-->Add C/C++ Expression. (Or, right-click in the C/C++ Editor and select Add C/C++ Expression.)
+ The Add Expression dialog opens:
+
+
+- Enter the expression you want to evaluate (e.g. (x-5)*3 ).
+
+- Click OK.
+ The expression and its value appear in the Expressions view. When the execution of a program is suspended, the IDE reevaluates all expressions and highlights the changed values.
+
+
+
+
+
+The Registers view displays information about the registers in the currently selected stack frame. When the execution stops, the changed values are highlighted. The functionality of the Registers view is very similar to that of the Variables view; for more information, see the "Inspecting your variables (Variables view)" section in this chapter.
+
+You can also customize the colors in the Registers view and change the default value of the Show Type Names option.
+
+
+To access the Registers view customization dialog:
+
+
+- From the main menu, select Window-->Preferences.
+
+- In the left pane, select Debug-->Registers View.
+
+
+
+
+
+The Memory view lets you inspect and change your process memory. The view consists of four tabs that let you inspect multiple sections of memory:
+
+
+
+
+
+
+
+
+The Memory view supports the same addressing as the C language. You can address memory using expressions such as 0x0847d3c, (&y)+1024, and *ptr.
+
+
+To inspect your process memory:
+
+
+- In the Debug view, select a process. Selecting a thread automatically selects the associated process.
+
+- In the Memory view, select one of the four tabs labeled Memory 1, Memory 2, and so on.
+
+- In the Address field, type the address and press Enter.
+
+
+
+
+
+
+
+
+
+ |
+Changing your process memory can make your program crash. |
+
+
+
+
+To change your process memory:
+
+
+- Follow the procedure for inspecting your process memory.
+
+- In the memory pane, type the new value for the memory. The Memory view works in "typeover" mode; use the arrow keys to jump from byte to byte:
+
+- Click the Save Changes button
.
+ The changed memory appears in red.
+
+
+
+
+
+You can configure your output to display hexadecimal or decimal. You can also set the number of display columns and the memory unit size. You can configure each memory tab independently.
+
+
+To configure the output format:
+
+
+- In the Memory view, select one of the four tabs labeled Memory 1, Memory 2, and so on.
+
+- Right-click the pane and select any of Format, Memory Unit Size, or Number of Columns. Choose your desired output format:

The output reflects your selection. Note that some output formats are best viewed in a nonproportional font such as Courier.
+
+
+
+
+
+
+
+You can customize the Memory view to display in different colors and fonts. You can also customize some of its behavior. The customizations affect the entire Memory view.
+
+
+To access the Memory view customization dialog:
+
+
+- From the menu, select Window-->Preferences.
+
+- In the left pane, select Debug-->Memory View.
+
+- You can now change the colors, font, and behavior of the Memory view. When you're done, click Apply, then OK.
+
+
+
+
+
+
+The Console view shows you the output of the execution of your program and lets you supply input to your program:
+
+
+
+
+
+
+
+
+
+
+The console shows three different kinds of text, each in a different default color:
+
+- standard output (blue)
+
+- standard error (red)
+
+- standard input (green)
+
+You can choose different colors for these kinds of text on the preferences pages.
+
+
+To access the Console view customization dialog:
+
+
+- From the menu, select Window-->Preferences.
+
+- In the left pane, select Debug-->Console.
+
+
+
+
+
+The IDE lets you debug using a subset of the commands that the gdb utility offers:
+
+
+
+
+
+
+
+
+
+
+
+The GDB Console view is part of the regular Console view but isn't accessible until you toggle to it. Once you do, GDB output appears in place of the regular Console view output.
+
+
+To enable the GDB Console view:
+
+
+- In the Debug view, select a debug session.
+
+- In the Debug view, click the Show Debugger Console on Target Selection button
.
+ The Console view changes to the GDB Debugger Console view.
+
+
+
+
+
+The GDB Console view lets you bypass the IDE and talk directly to GDB; the IDE is unaware of anything done in the GDB Console view. Thus, items such as breakpoints that you set from the GDB Console view don't appear in the C/C++ Editor.
+
+
+
+
+ |
+You can't use the Tab key for line completion because the commands are sent to GDB only when you press Enter. |
+
+
+
+
+To use the GDB Console view:
+
+
+ |
+In the GDB Console view, enter a command. For example, enter help to get a list of commands; nexti to step one instruction, proceeding through subroutine calls; nexti 3 to step three: 
|
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/org.eclipse.cdt.doc.user/raw/hackedguide/image-lib/caution.gif b/doc/org.eclipse.cdt.doc.user/raw/hackedguide/image-lib/caution.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f4ec4e7b194f239c96397cd82fdf2414460bc046
GIT binary patch
literal 1175
zcmXw2TWnNS6x{=z%dOTrDgBs8iPlik5)4yMYfAKE&`MEj95prNqj7Nb*rYyg2$tAr
zoK7ui0JX6RWk)oZ5GeL*5+_vTgNtcMD;qO_AJ+I7!3Qx)8xjqY=yshZ-brrmIeVS8
z*IN5b*CSgyHt%SnCR!w_R4OW_TrLw)u~>|vNJO&PEHft(31JGuFrUwlkB?hJ%w+Jk
zWQfw~wCqm>LBQ5nODfd4ty>x2R+)r>Bg15wNXQ6TAr=xLQZhevuw#ZhF3mRJajuwn*?6$(&O7G*`g@C-qKxP*DsOX~HKIxCvucZg|KS
z&Y=lt1dK!xp&PqP1u?kM!Yj-{F}NTZ8X*cQ&=%C-1{qERjyg8*+?bW0<|5oE>K|+9
zJxKk>qhv>CCw+bJZ5RgNF89Op|0m>xMEQUy9HkTMi({&lrKP1zCX-5~fWyVYNS1FL
zu9%z6^6hZD82Iu4sqycs7;v=Fz1)8y?JLFnhHb_0%!t3bu0E4JL-AOBO>ZWh|9qe4
zHw20B$S76UrTxU=9IaaACqMN=D#X_3yfBPCxS~4QJlD3Fw!{ulmB04U($#X9p4brI
z5al15xUXyQP=EB?Q+qZwp8blm>B88(O*czJiGk7Tl^3V`&JF%i<>e;7`0%lrYtgaz
z^=C>0nf%swTc4aR?fbKFp6WWi8_k1@JyWUNf$j&c=enn#Klkr<^Cv&4$nHMdyl}EK
z@2|dmcUvY;1@E@x>__*U`s;Vk_v?G-XJ!_Eh`3Pu8=0&gA(in|Qw7kA)*UL9cS9X8!?CB@^GCd#fn)vnAp{egLwVplSdSz;|rT2~P
zbI0Oi3vbmvK6$5CyDk{^ej9DiZmDT6AL_n62!;!5+nS$#v;4wr)E^t%bH~b&f4ZU-
qH7^Cx-i;@&Uf#PVI{N-=hkt%JdZ*);<40cUxsd$!y`AwYy8l0!vmqe>
literal 0
HcmV?d00001
diff --git a/doc/org.eclipse.cdt.doc.user/raw/hackedguide/image-lib/onestep.gif b/doc/org.eclipse.cdt.doc.user/raw/hackedguide/image-lib/onestep.gif
new file mode 100644
index 0000000000000000000000000000000000000000..239243c1059e6813579aefe5fb5fda14bfa2d428
GIT binary patch
literal 978
zcmXw2J7`m36h7(01|N{NC`l=JeIs@VJxj&Gh{3iXnxTav4)JxUP63yWx2-~`N;^38
zpu^Rr6$(Za1*dCq5IjP$L%XPV5LY|ubo}yzHxTmQbIy0Z$Dh&h3nQnmm1ux|6J=RO
zL?WUpOG`^}9Gh9aURTwhpVEzujWkV7wbg1RNunaA(r7fIC@K^R7-Y;68IgwrGYOM2
z8Iy+^3&2T*Ovury#7d&1N~Yx69%dskQX@0+fW=PYq)z7K0h$R&7)39NIJF;PR%T=N
zuo!0%R$&wNzyoDbR%KK6KnvYstj1>SfhC5;S)I+<18Il=YtRHQ5W!}w0ye-fjds-W
z!bCi1!%9){AQHP#P!luppcz!qr!MB=!2&o0OW*-SLnUNE2Z)0ysDTTXV_V1sNEmJV
zg*rm=U>x)y2{koS4?aR37@%yf9&AMja2+$R&dyG)R;yGh<#PGZ->w|4E)BK6+W(14{w3w|gJZ4a
z!+dAw(MCpd^SN9{R4vxyxY^TnbEuNc=DPdOFAR=`)u>$f+X1AC$`Poni7D?Mx9_mz5IO)k!i4ph?K
N;jPch?{;<3nSU)P!2JLK
literal 0
HcmV?d00001
diff --git a/doc/org.eclipse.cdt.doc.user/raw/hackedguide/image-lib/pointing.gif b/doc/org.eclipse.cdt.doc.user/raw/hackedguide/image-lib/pointing.gif
new file mode 100644
index 0000000000000000000000000000000000000000..903f23707c91ff809466fb3eebe6157ce24ff4bf
GIT binary patch
literal 174
zcmZ?wbhEHblw%NO_{G5R;K76c|Nn2;uz`VrAt51wf#E+xL&1Lr2F0H&j6fj<9S{Lh
z%fwvFvFpx1gHw{n7f4JHEbEIF;86N#IZY!fr`k~O!m1KkhJ&jMwDbG-%lb_HB^W!c
zZT%1Brz{sVN;axU^ap89&0xJWr#YwO#^-;Bf=^t!6xz7;RZO2k!q)J|T`Ti6n8gHVSrdx2R8;IEjIi!5RQ2-b8l*
literal 0
HcmV?d00001
diff --git a/doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/cwiz.jpg b/doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/cwiz.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..23d9f690a84d28384be7ad46250915ba561887e0
GIT binary patch
literal 37591
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
literal 0
HcmV?d00001
diff --git a/doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/cwiz_c_architecture.jpg b/doc/org.eclipse.cdt.doc.user/raw/hackedguide/images/cwiz_c_architecture.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a07df4a745796a077bf2545cd31117e0871af19d
GIT binary patch
literal 39198
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