diff options
Diffstat (limited to 'docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/3.4.3.3_Using_the_Command_Line.md')
-rw-r--r-- | docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/3.4.3.3_Using_the_Command_Line.md | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/3.4.3.3_Using_the_Command_Line.md b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/3.4.3.3_Using_the_Command_Line.md new file mode 100644 index 0000000..4dd7431 --- /dev/null +++ b/docs/ATTIC/3_Developer_Guides/4_X(cross)_Development_System:_User's_Guide/3_Debugging_Your_First_AGL_Application/3.4.3.3_Using_the_Command_Line.md @@ -0,0 +1,123 @@ +--- +edit_link: '' +title: Using the Command Line +origin_url: >- + https://git.automotivelinux.org/src/xds/xds-docs/plain/docs/part-1/debug-cmd-line.md?h=master +--- + +<!-- WARNING: This file is generated by fetch_docs.js using /home/boron/Documents/AGL/docs-webtemplate/site/_data/tocs/devguides/master/xds-docs-guides-devguides-book.yml --> + +# Using the XDS Command Line + +You can debug your AGL application using the XDS command line +in XDS remote mode or in native mode. + +## XDS Remote Mode + +XDS remote debugging is the default mode for using XDS to debug your +application. + + +Follow this procedure to use XDS remotely to debug your application: + +1. Declare the project you want to debug to the `xds-server`. + The project can also have been built using XDS. + See the "[Create your first AGL application](../../../#create-your-first-agl-application)" + topic for more details. + +2. Be sure you have the XDS agent and XDS server chain in place. + You can find more information on this chain in the + "[Installing XDS](../../../#installing-xds)" topic. + +3. Determine the unique project and SDK ID values. + Two methods exist for you to locate these ID values: + + - Use the "Project" page of the XDS dashboard. + + - Use the `xds-gdb --list` command from the XDS command line. + This command returns the list of all existing project and SDK + IDs: + + ```bash + xds-gdb --list + ``` + +4. Define the `XDS_PROJECT_ID` and `XDS_SDK_ID` variables. + Defining these variables refers the project to the + `xds-server`. + Once you refer the project, you are ready to use `xds-gdb` + (e.g. cross debug your project). + +5. Build and debug the project. + +**Example** + +Following is an example that builds and debugs a project +based on a CMakefile and the +[cmake-apps-module](https://git.automotivelinux.org/src/cmake-apps-module/): + +```bash +# Go into your project directory (e.g. helloworld-native-application) +cd ~/xds-workspace +# Clone the project files into your local directory. +git clone https://github.com/iotbzh/helloworld-native-application.git +# Go to the local project's directory. +cd helloworld-service + +# Declare your project on xds-server +# For now, you can only do this step using the XDS Dashboard. +# See the "Build Using the XDS Dashboard" topic in the "Create Your +# First Application" topic. + +# Define XDS configuration variables by creating a "xds-config.env" file. +cat <<EOF >./xds-config.env +#optional if not default value: XDS_AGENT_URL=http://localhost:8800 +XDS_PROJECT_ID=IW7B4EE-DBY4Z74_myProject +XDS_SDK_ID=poky-agl_aarch64_4.0.1 +EOF + +# Define the configuration file to use. +export XDS_CONFIG=../xds-gen3.conf + +# Create a new build directory. +mkdir build && cd build + +# Start remote cross-build +xds-cli exec -- cmake -DRSYNC_TARGET=root@myTarget .. +xds-cli exec -- make +xds-cli exec -- make remote-target-populate + +# Start debugging +xds-gdb -x target/gdb-on-root@myTarget.ini +``` + +<!-- section-note --> +**NOTE:** + +The [helloworld-native-application](https://github.com/iotbzh/helloworld-native-application) +project is an AGL project based on the +[cmake-apps-module](https://git.automotivelinux.org/src/cmake-apps-module/). +For information on installing this module, see the +"[Installing the CMAKE Templates](../../cmakeafbtemplates/dev_guide/installing-cmake.html))" +topic. + +The CMake templates that are used to develop applications +with the AGL Application Framework, automatically generate +Makefile rules (e.g. `remote-target-populate`) or scripts +(e.g. `build/target/*`). + +For more info about the CMake templates, see the +"[Using the Cmake Applications Module](../../../#using-the-cmake-applications-module)" +topic. +<!-- end-section-note --> + +## Native debugging + +Native debugging is best for applications or services that are also +built natively and you want to use any debugger (e.g. GDB) on an actual +piece of hardware. + +To enable native debugging mode, set the `XDS_NATIVE_GDB` variable. + +For information on debugging with GDB, see +"[Debugging with GDB](https://www.sourceware.org/gdb/onlinedocs/gdb.html)". |