Feed for discussion Tip of the Day in project IDE. http://community.qnx.com/sf/discussion/do/listTopics/projects.ide/discussion.tip_of_the_day Posts for Tip of the Day post117936: Re: Qnx IDE: Tip of the Day #26: Launch script on target http://community.qnx.com/sf/go/post117936 I have target shell scripts which will run couple of applications inside the script. I created debug launcher and set target shell script as remote executable. I can able to execute the target scripts successfully from IDE, But I faced couple of issue. Issue 1: In my target shell script, the application shall run in the back ground (using &) process. The debugger immediately goes to exit state after it run the application from the target shell. Solution: I solved it by removing the & symbol from the shell for particular application. I can see the debugger is running. Issue 2: I'm not able to debug the application which starts from the target shell. My intention is to debug the application which is inside the shell script. Any suggestion on how to debug the application which runs from the script. However, I can able to debug the application by attaching the debugger "Attach to debugger Process". Also by debugging the application if I set remote executable as application instead of target shell script. Murugaiyan Perumal(deleted) 2017-08-02T02:39:50Z post109033: subscribe http://community.qnx.com/sf/go/post109033 [cid:_1_08CCBDD808CCBA88006D8B0B83257B17]<http://www.all-logistica.com/> Marcelo Souza Ramos Gerência TI +55 41 2141-7393 ALL - América Latina Logística | Visite nosso site: www.all-logistica.com<http://www.all-logistica.com> ======================================= Este documento pode incluir informação confidencial e de propriedade restrita da América Latina Logística e afiliadas, e apenas pode ser lido por aquele(s) ao qual o mesmo tenha sido endereçado. Se você recebeu essa mensagem de e-mail indevidamente, por favor, avise-nos imediatamente. Quaisquer opiniões ou informações expressadas neste e-mail pertencem ao seu remetente e não necessariamente coincidem com aquelas da América Latina Logística e afiliadas. Este documento não pode ser reproduzido, copiado, distribuido, publicado ou modificado por terceiros, sem a prévia autorização por escrito da América Latina Logística e afiliadas. Marcelo Souza Ramos(deleted) 2014-02-25T20:23:12Z post105372: Subscribe http://community.qnx.com/sf/go/post105372 [cid:_1_08CCBDD808CCBA88006D8B0B83257B17]<http://www.all-logistica.com/> Marcelo Souza Ramos Gerência TI +55 41 2141-7393 ALL - América Latina Logística | Visite nosso site: www.all-logistica.com<http://www.all-logistica.com> Marcelo Souza Ramos(deleted) 2013-09-24T19:02:58Z post83627: Open a folder http://community.qnx.com/sf/go/post83627 Eclipse doesn't have an option to open Explorer on a file/folder, say for example if you want to zip them. Here is how to do this: http://www.eclipsezone.com/eclipse/forums/t77655.html Mario Charest 2011-03-01T16:14:12Z post57940: Qnx IDE: Tip of the Day #26: Launch script on target http://community.qnx.com/sf/go/post57940 Even it is not officially documented it is possible to run target shell scripts from IDE. How to do it: Create a normal Qnx Qconn launch configuration. Select ANY project and ANY binary in the Main page (this is required to satisfy IDE checks, these settings won't be used). In Upload tab, select "Use executable on target", and type script name (or use browse), Script must have +x set already. Specify script arguments in Arguments tab. Now you can run it. It will print output on console. If you want to save output to a file, you can use Common tab to set it. The other "trick" related to that, if you doing system profiling and your script is a test for already running processes, you can setup launch configuration for this test script as describe above but add Kernel Logging Tool to capture the log associated with the test. Elena Laskavaia 2010-06-25T18:20:56Z post48559: Qnx IDE: Tip of the Day #25: Help infocenter http://community.qnx.com/sf/go/post48559 If you want to access QNX User documentation that comes with IDE without running IDE, you can start "infocenter". It is a web service that would allow to browse documentation using regular web browser. You can start eclipse infocenter from command line: (for IDE 4.6) cd <IDE installation folder, parent of eclipse folder> cp eclipse/qde eclipse/eclipse #this needed because otherwise tool would not recognize installation folder java -cp eclipse/plugins/org.eclipse.help.base_3.3.1.v20070813_33x.jar:eclipse/plugins/org.mortbay.jetty_5.1.11. v200706111724.jar org.eclipse.help.standalone.Infocenter -command start -eclipsehome ./eclipse/ -port 7000 -vmargs -Xmx512M To access it: http://<your host>:7000/help/index.jsp (assuming you run on 7000) Also see general eclipse instructions here: http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.platform.doc.isv/reference/misc/help_infocenter.html?view=co Elena Laskavaia 2010-03-01T20:50:51Z post48440: Qnx IDE: Tip of the Day #24: Target Deactivation http://community.qnx.com/sf/go/post48440 If you happen to have many targets (target - computer/boards that runs Neutrino) it clutters the target navigator and other tools when you need to select one. You can "deactivate" ones you are not using - to do that open Navigator view (Window->Show View->Other...->General->Navigator) and you can see your targets as projects there. Select ones you want to de-activate and close them (right click and select Close Project). If you now switch back to Target Navigator it would be gone from the list. To re-active select Open Project from Navigator view. Elena Laskavaia 2010-02-26T17:47:51Z post48304: Qnx IDE: Tip of the Day #23: Build Configurations and Make Targets http://community.qnx.com/sf/go/post48304 If you use regular makefile projects in IDE you usually on our own to configure builds variants and targets in make. However IDE can help you to automate build of certain specific configurations. For example if you build for two platforms x86 and arm and it is determined by make variable (which you normally set in command line), there are two ways you can automate it in IDE - using Build Configurations and using Make Targets. To create new Make Target right click on your project and select Make Targets->Create... You can give it a name and you can optionally define a make command line. You can build a target using Make Target->Build... To create a new Build Configuration use menu Build Configuration->Manage... It gives you a lot more option than make target. To override make command use C/C++ Build make tab. You can also change Environment Variables and some other aspects on Build Configuration. By default "Build Project" command would build an active configuration (your choice). You also can build All or Selected configuration from project context menu. For example I can create "x86-debug" configuration with a make command: make CPULIST=x86 DEBUG=-gdwarf-2 OPTIMIZE_TYPE=NONE Make Targets and Build Configuration can work nicely together if you use "default" make command in the Make Target definition and only redefine the actual "target". It will use settings from an "Active" configuration. Elena Laskavaia 2010-02-25T15:10:24Z post42657: QNX IDE Tip of the Day #22: Quick Access to Anything and Everything http://community.qnx.com/sf/go/post42657 Ever wondered how to find a view, command, or other item in the IDE workbench when you don't quite remember the name or where it is in the menus? The answer is Ctrl+3: press this key combination, then start typing a word. The IDE will present a list of matching commands, menus, views, perspectives, preference pages, wizards, and more that match what you typed. Just select what you need from the list and voila! Christian Damus(deleted) 2009-11-26T14:34:08Z post42403: RE: Qnx IDE: Tip of the Day #5: Prompt for command line arguments http://community.qnx.com/sf/go/post42403 Okay. I get it now--it must be the exact literal "string_prompt" inside the curly braces. My assumption was that this was a string prompt that was configurable so that you could actually provide the prompt text. If I use the value ${string_prompt} exactly as written, it stops and asks as it should. Anything else grabs a variable of that name. --Andy Andy Gryc(deleted) 2009-11-23T18:03:59Z post42399: RE: Qnx IDE: Tip of the Day #5: Prompt for command line arguments http://community.qnx.com/sf/go/post42399 If you're trying to get a launch to prompt for command-line arguments, I've had success with: ${string_prompt} In the "Arguments" field. -David -----Original Message----- From: Andy Gryc [mailto:community-noreply@qnx.com] Sent: November 23, 2009 12:24 PM To: tips-ide Subject: Re: Qnx IDE: Tip of the Day #5: Prompt for command line arguments Hi Elaina, I can't seem to get this tip to work. What I get instead is an error "Reference to undefined variable PeekAddress". This is for a command-line of just ${PeekAddress} I've tried using double quotes, and question marks in various combinations, but nothing seems to work. What am I missing? --Andy _______________________________________________ Tip of the Day http://community.qnx.com/sf/go/post42390 David Gibbs 2009-11-23T17:47:05Z post42390: Re: Qnx IDE: Tip of the Day #5: Prompt for command line arguments http://community.qnx.com/sf/go/post42390 Hi Elaina, I can't seem to get this tip to work. What I get instead is an error "Reference to undefined variable PeekAddress". This is for a command-line of just ${PeekAddress} I've tried using double quotes, and question marks in various combinations, but nothing seems to work. What am I missing? --Andy Andy Gryc(deleted) 2009-11-23T17:24:04Z post34440: Qnx IDE: Tip of the Day #21: Find Memory Corruption Problems http://community.qnx.com/sf/go/post34440 IDE 4.6 provides two tools to help find runtime errors: - Memory Analysis Runtime Error Detection - Mudflap Integration Memory Analysis Runtime Error Detection is part of Memory Analysis tool suite. To run your program with runtime error detection you don't have to recompile it (but it has to be debug version to see source code associations). To do this add Memory Analysis tool in the Tools tab of Launch Configuration and select Switch to this tool's perspective checkbox. When program run you will see new session created in Session view of Memory Analysis perspective. Double click on session to open it and switch to Errors tab. To try it out you can create Example project (New->Example...->QNX Example Project - Detecting Runtime Errors) it has a code of application with bugs in it. Mudflap Integration of IDE allows you to view errors detected by mudflap in convenient way with groping, sorting and source navigation. Mudflap is gcc instrumentation and runtime library (since QNX SDP 6.4.1) that instrument your code to watch for buffer overflows and other typical memory corruption errors. To use it you need to compile your code with -fmudflapth option. To use IDE integration add Mudlfap tool in the Tools tab of Launch Configuration. The difference between two tools: - Memory Analysis has more false negative, but very little false positive (i.e. it misses real errors, but do not report incorrect ones). Mudlfap does the opposite - it has more false positives (i.e. report errors which are not correct) - Memory Analysis does not require recompilation and has low performance impact Elena Laskavaia 2009-07-23T17:00:50Z post31971: Qnx IDE: Tip of the Day #20: Transferring Files to a Target http://community.qnx.com/sf/go/post31971 There are few ways how you can transfer files files from host to target (and visa versa) using IDE. The method of transfer depends on conditions and connection method. If you have network connection and qconn is running on a target: * Target File System Navigator (TFSN) View ** allows to drag and drop files from host (IDE and other programs) to the target folder and other way around ** allows to use cut & paste commands ** allows rename and delete files on target, launch file on target from TFSN and open target files in the IDE editor ** Note: deleting files on target has a bug in IDE 4.6 and earlier - descriptor leak. If you delete lots of big files to get rid of leaks (which prevent space to be reclaimed) you need to close/re-open target project or re-start qconn * Launch ** Binaries and Shared Libraries can be uploaded automatically when you launch qnx qconn launch configuration, you can also launch fake binary such as "ls" just to transfer the libraries from host to target. Unfortunately it does work only for shared libraries, other files cannot be transfered using this launch configuration. ** If you want to automate file transfer while launching, you can write external script to upload and/or download files, then use Group Launch to combine script launch and binary launch into one sequential launch. If you have serial connection: * You can use Terminal view to transfer image to a target, using "Transfer Image to Target" action, which is available from action bar of Terminal view * You can upload and debug and a binary using Pdebug launch configuration TFTP Server * IDE can run TFTP server for you, you can configure target client to grab files from host from selected directories. To run the server open "TFTP Server" view. JTAG Device * If you have compatible jtag device you can upload and debug image using GDB Hardware Debugging launch configuration Elena Laskavaia 2009-06-17T14:51:46Z post29452: Qnx IDE: Tip of the Day #19: Debugger - Breakpoint actions http://community.qnx.com/sf/go/post29452 Debugger supports user defined breakpoint actions. Actions can be: sound, log entry, resume after N seconds, external command or gdb command. You can specify several actions. To do that right click on existing breakpoint in the Breakpoints view and select Properties... In Action tab you can define new actions (at the bottom) and attach them to current breakpoint (at the top). For example you can define a breakpoint action: when breakpoint hit, "print x" (gdb command to print variable x) and resume. Elena Laskavaia 2009-05-14T15:24:11Z post28639: Qnx IDE: Tip of the Day #18: Linked Resources http://community.qnx.com/sf/go/post28639 You can create Eclipse "Links" in your project which can point to other locations outside of workspace or project location itself. They are similar to unix soft links. You cannot create relative links, however you can create links based on "Linked Resources Variables" (starting from IDE 4.6). For example you have a project aaa and you want to link output folder to somewhere else in file system, for example to /opt/sources/output, we will create variable SOURCE_DIR pointing to /opt/sources that all projects can share. * Select "New Folder..." * Click "Advanced..." * Check "Link to folder in the file system", * Select "Variables..." * Click "New..." * Enter name and location in file system for this variable, click OK. * Select "Extend..." and select "output" folder (from /opt/sources). Now your link would look like SOURCE_DIR/output. Click Finish. To enter or view list of Linked Resources Variables open Window->Preferences->General->Workspace->Linked Resources. Links structure is stored in .project file in the root of your project. Linked Resource Variables are user specific and stored with local workspace settings. Read more about project structure example here: http://community.qnx.com/sf/wiki/do/viewPage/projects.ide/wiki/ProjectsBuildAndIDE Elena Laskavaia 2009-05-04T17:12:58Z post28252: Qnx IDE: Tip of the Day #17: Group Launch http://community.qnx.com/sf/go/post28252 New IDE 4.6 comes with another launch configuration type called "Group Launch". This allows you to launch several processes at the same time (for example server and client). You can also combine different launch configurations, such run Local script, then run Kernel Tracing logging, then run Remote process. Elena Laskavaia 2009-04-28T14:44:44Z post27906: Qnx IDE: Tip of the Day #16: System Profiler - Full Trace Event Log http://community.qnx.com/sf/go/post27906 Introduced in version 4.5, System Profiler now provides a Full Trace Event Log view. This view is not displayed in the System Profiler perspective by default, but can be shown using Window->Show View->Other->System Profiler->Full Trace Event Log. Similar to the original Trace Event Log view, the Full Trace Event Log view displays a list of events from your trace file, reacts to the selection you've made in the Timeline and allows you to filter its results. The difference is that the Full Trace Event Log display the events for the entire event log and allows you to easily scroll through these events. The original Trace Event Log restricted you to scrolling through a fixed set of events. The intention is to eventually merge these two views together into a single log view during a future release. Feel free to give the Full Trace Event Log view a try when working with System Profiler and let us know what you think. David Cummings(deleted) 2009-04-23T15:33:36Z post27406: Qnx IDE: Tip of the Day #15: Detaching Views http://community.qnx.com/sf/go/post27406 Particularly handy if you are using multiple monitors, the IDE allows you to detach views from the main window. This allows you to position them outside of the main window and on different monitors. For example, you could detach the Outline view from the C/C++ perspective and place it on a different monitor to give you additional space to display your source code. To detach a view, simply right-click on its header and select detach. Once a view is detached, you can attach it to the main window using the same steps. David Cummings(deleted) 2009-04-17T19:24:54Z post27273: Qnx IDE: Tip of the Day #14: Quick way to find memory leaks in C/C++programs http://community.qnx.com/sf/go/post27273 If your application is leaking memory the best way to find out where it is leaking is to use Memory Analysis tool. The only thing you really need is the binary with debug information on the host side. If you cannot run it from Qnx IDE you can run it on target side with special options and attach to it. To run from IDE: - If you don't use IDE to build yoru binary create simple makefile project and drop your binary in there - Select it, right click and select Run as QNX Application Dialog... - Select target, Environment, Arguments - Switch to Tools tab and Add Memory Analysis tooling, Enable switch to this tool's perspective - When app started, double click on "session" in Sessions view of Memory Analysis perspective, it would open an graphical editor - Let your app run, maybe execute a test that makes it leak memory - Now switch to Settings tab and press get Leaks button - Switch to Errors tab and you should see Leaks errors there if you have any. Click on error line to see allocation backtrace. This object has no references and has not being freed. To run on target: - Run your app from target terminal as: rm /tmp/traces.rmat; LD_PRELOAD=librcheck.so MALLOC_CTHREAD=1 MALLOC_TRACE=1 MALLOC_FILE=/tmp/traces.rmat ./your_app - On the host create Attach configuration instead of regular one (from Profile... menu) - Enabled Memory Analysis tooling and make sure that it uses same file name in Advanced Settings as MALLOC_FILE var - When you start it would ask to select a process from the list - The rest as the same as above If you need more details please consult User Documentation. Elena Laskavaia 2009-04-16T18:32:39Z post26973: Qnx IDE: Tip of the Day #13: Installing new IDE trial http://community.qnx.com/sf/go/post26973 QNX IDE installation is self contained, it does not require admin privileges to install and can co-exist with any number of other Momentics and IDE installations. So if you want to try new version you can do it just by downloading and unzipping ide archive in any folder. IDE tools settings are configured by setting environment variables. See installation instructions here: http://community.qnx.com/sf/wiki/do/viewPage/projects.ide/wiki/Builds_Tau_Integration When you try new IDE, especially development build, make sure to use new workspace. If you want to use your primary workspace make sure you back it up because there is no guarantee that it would work with previous versions of IDE (it may upconvert it). Don't forget to post any trial problems on IDE General forum. Elena Laskavaia 2009-04-14T18:51:03Z post26591: Qnx IDE: Tip of the Day #12: Target Memory Viewer http://community.qnx.com/sf/go/post26591 If you want to view contents of the operating memory on the target you can use debugger Memory view. You pick virtual memory of which process you want to look into and launch Debugger in attach mode and attach to selected process. Open Memory view (Windows->Show View->Other... -> Debug->Memory) and create a "monitor" with any Virtual address (you can also use names of global variables). You can pick between different renderings, like hex, dec or char. Elena Laskavaia 2009-04-09T17:12:22Z post26202: Qne IDE: Tip of the Day #11: Application Profiler - Compare sessions http://community.qnx.com/sf/go/post26202 In Application Profiler starting from IDE 4.5 there is a possibility to compare profiling sessions. To do that select two profiling sessions in Profiler Sessions view, right click and select "Compare" from context menu. Resulting session would show diff time instead of absolute time for all functions. Elena Laskavaia 2009-04-07T13:38:34Z post25922: RE: Qnx IDE: Tip of the Day #10: Remote debugging with shared library http://community.qnx.com/sf/go/post25922 Just to add my 'tip' to point#3: On the host (Linux) we create a 'debug' directory and use a shell script to create sym links to all our libraries and append the needed so.# postfix. Then from within the Debug Tab in the IDE we just point to this one directory as the repository for all our libraries. Typically we only need to run the script once after the first build and only need to re-run it if we add a new library. Here is the script. Note that the version number for our libraries is always '1'. #!/bin/sh if [ ! "$1" ]; then echo "no directory supplied (expect module directory)" exit 1 fi reldir=$1 trgdir=debug echo "$1" # 2. Find the SO lib and copy it to the current directory for i in `find $reldir -name '*.so' -print` do # (echo $i; cp $i $trgdir/`basename $i`.1; echo copying $i) (echo $i; ln -sf ../$i $trgdir/`basename $i`.1; echo copying $i) done Cheers Robert -----Original Message----- From: Elena Laskavaia [mailto:community-noreply@qnx.com] Sent: Thursday, April 02, 2009 11:32 AM To: tips-ide Subject: Qnx IDE: Tip of the Day #10: Remote debugging with shared library Remote debugging is not an easy thing, and remove debugging with shared libraries is more complected. To do successful debugging with shared library (i.e. to set breakpoints in libraries and view sources) you need the following things: - create launch configuration for debugging - have set of binary and all libraries available on target. Library name should be SONAME, i.e. name that binary required, not the name of the file. Usually they different by .so postfix. I.e. compiler would create libaaa.so and actual name is libaaa.so.1. Loader needs second name. Linker needs first. If you using IDE to upload (Upload tab of launch configuration) it will rename all libraries appropriately. If not - you have to take care of it yourself. Also you need to set LD_LIBRARY_PATH variable in Environment tab if libraries are not in standard path (path is on target). - set of binary and libraries with debug info available on the host. Debugger has to know where they are. Set binary in the Main tan and Library paths in the Debugger tab - Shared Libraries. Library name MUST be SOMENAME on the host, i.e. libaaa.so.1, otherwise debugger would not find it. If you using IDE upload it will also take care of renaming host libraries, if not you have to make sure they are renamed. The better approach for debugging would be actually not to use soname at all when you building the library for debugging (controlled by linker option). - sources for binary and library available on host. If it was compiled on different host you also need to set Path mapping in the Source tab. Happy debugging! _______________________________________________ Tip of the Day http://community.qnx.com/sf/go/post25863 Robert D'Attilio(deleted) 2009-04-02T19:36:43Z post25863: Qnx IDE: Tip of the Day #10: Remote debugging with shared library http://community.qnx.com/sf/go/post25863 Remote debugging is not an easy thing, and remove debugging with shared libraries is more complected. To do successful debugging with shared library (i.e. to set breakpoints in libraries and view sources) you need the following things: - create launch configuration for debugging - have set of binary and all libraries available on target. Library name should be SONAME, i.e. name that binary required, not the name of the file. Usually they different by .so postfix. I.e. compiler would create libaaa.so and actual name is libaaa.so.1. Loader needs second name. Linker needs first. If you using IDE to upload (Upload tab of launch configuration) it will rename all libraries appropriately. If not - you have to take care of it yourself. Also you need to set LD_LIBRARY_PATH variable in Environment tab if libraries are not in standard path (path is on target). - set of binary and libraries with debug info available on the host. Debugger has to know where they are. Set binary in the Main tan and Library paths in the Debugger tab - Shared Libraries. Library name MUST be SOMENAME on the host, i.e. libaaa.so.1, otherwise debugger would not find it. If you using IDE upload it will also take care of renaming host libraries, if not you have to make sure they are renamed. The better approach for debugging would be actually not to use soname at all when you building the library for debugging (controlled by linker option). - sources for binary and library available on host. If it was compiled on different host you also need to set Path mapping in the Source tab. Happy debugging! Elena Laskavaia 2009-04-02T15:31:40Z post25718: Qnx IDE: Tip of the Day #9: Properties View http://community.qnx.com/sf/go/post25718 Properties View is a useful view to get additional information on the objects and usually supported by most object navigators. For example if you are in Project Explorer you can select a binary file and Properties View would show file attributes and binary info, including size of the file, last modification date, target cpu, debug mode and even needed libraries. To open Properties view use Window->Show View->Properties. Elena Laskavaia 2009-03-31T19:19:16Z post25604: Qnx IDE: Tip of the Day #8: Export Kernel Trace file as formatted CSV http://community.qnx.com/sf/go/post25604 System Profiler allows you to export your kernel trace events (kev file) as a formatted CSV. You can use this file to browse the events in a text editor, or import into a spreadsheet program that supports the CSV format (such as Excel or OpenOffice Calc). To do so, select your kernel trace in the Project Explorer, right-click and select System Profiler->Save Formatted Events to CSV file... Additionally, copying a range of selected events from the Trace Event Log, will copy the events formatted for the CSV format. David Cummings(deleted) 2009-03-30T19:50:31Z post25603: RE: Qnx IDE: Tip of the Day #7: View assembly code http://community.qnx.com/sf/go/post25603 > -----Original Message----- > From: David Cummings [mailto:community-noreply@qnx.com] > Sent: March-30-09 3:45 PM > To: tips-ide > Subject: Re: Qnx IDE: Tip of the Day #7: View assembly code > > Thanks for the post Mario. We definitely welcome (and encourage) > contributions to this forum from the QNX community. I wasn`t sure if this was ok. Said to myself, they can just delete the post! > > _______________________________________________ > Tip of the Day > http://community.qnx.com/sf/go/post25602 > Mario Charest 2009-03-30T19:45:47Z post25602: Re: Qnx IDE: Tip of the Day #7: View assembly code http://community.qnx.com/sf/go/post25602 Thanks for the post Mario. We definitely welcome (and encourage) contributions to this forum from the QNX community. David Cummings(deleted) 2009-03-30T19:44:39Z post25477: Qnx IDE: Tip of the Day #7: View assembly code http://community.qnx.com/sf/go/post25477 If I may: By double clicking on an object file ( .o ) or an executable you'll see the assembly code intermix with the source code. Mario Charest 2009-03-27T19:55:52Z post24874: Qnx IDE: Tip of the Day #7: Template Proposals http://community.qnx.com/sf/go/post24874 How many times in your developer's life you typed fprintf(stderr,"here\n"); or for(i=0;i<n;i++) {}? IDE offers a way not to type common patterns over and over, by using only a keyword describing the pattern. For example you can type stderr<Ctrl-Space> in your C editor and it should automatically expand to "fprintf(stderr, I);" where I is a cursor position, which saved you typing extra 10 symbols. You can go further and modify "stderr" template to include string and \n into it, to have this result: fprintf(stderr, "I\n"); To do that open Window->Preferences->C/C++->Editor->Context Assist->Templates. Find and select stderr template, click Edit... and change to fprintf(stderr, "${cursor}\n"); This also gives you a list of possible template you can use as well. If <Ctrl-Space> does not show you templates it may be disabled, to configure what is show on first and second keystroke see Window->Preferences->C/C++->Editor->Context Assist->Advanced. Elena Laskavaia 2009-03-20T14:13:02Z post24710: Re: AW: AW: Qnx IDE: Tip of the Day #3: System Profiler - splitting kernel trace file http://community.qnx.com/sf/go/post24710 Thanks for the trace. I've fixed the issue, so it should be available in our next 4.6 foundry drop. David Cummings(deleted) 2009-03-18T16:01:04Z post24706: Qnx IDE: Tip of the Day #6: Quickly filter processes and threads from System Profiler Timeline http://community.qnx.com/sf/go/post24706 The System Profiler perspective provides a Filters view which allows you filter which owners (processes and threads) and events appear in the Timeline and other System Profiler panes and views. When working with the Timeline, it's often advantageous to hide the processes and threads that aren't relevant to your investigation. To quickly filter owners without having to use the Filters view, simply select one or more owners and press the DEL key. David Cummings(deleted) 2009-03-18T15:46:39Z post24556: Qnx IDE: Tip of the Day #5: Prompt for command line arguments http://community.qnx.com/sf/go/post24556 The IDE will prompt you for command line arguments during each launch of the executable by using ${string_prompt} as the C/C++ Program Arguments in the program's Launch Configuration. Elena Laskavaia 2009-03-17T14:18:09Z post24430: AW: AW: Qnx IDE: Tip of the Day #3: System Profiler - splitting kernel trace file http://community.qnx.com/sf/go/post24430 sure, no problem I've put the zip to the ftp server - /home/harman_ftp/users/fromHP It's a kev from a Jacinto 6.3.2 System including Application Profiler Information there were no filers active, and it works (doesn't) with an selection I am using Version: 4.6.0 Build id: I20090304 It has been working for Version: 4.5.1 Build id: I20090105 Just tested a 2nd kev, without AppProfiler Information, that one is working so it has to be something around the Function Enter/Exit stuff thanks /hp >-----Ursprüngliche Nachricht----- >Von: David Cummings [mailto:community-noreply@qnx.com] >Gesendet: Montag, 16. März 2009 15:14 >An: tips-ide >Betreff: Re: AW: Qnx IDE: Tip of the Day #3: System Profiler - >splitting kernel trace file > >HP - Would it be possible for you to send me your trace file, >build ID, selection range and which filters you had enabled? >I'm unable to reproduce on my machine, so it is most likely >something specific to your trace. > >_______________________________________________ >Tip of the Day >http://community.qnx.com/sf/go/post24424 > > ******************************************* Harman Becker Automotive Systems GmbH Management Board: Dr. Klaus Blickle (Chairman), Dr. Udo Hüls, Michael Mauser Chairman of the Supervisory Board: Ansgar Rempp | Domicile: Karlsbad | Local Court Mannheim: Register No. 361395 ******************************************* Diese E-Mail enthaelt vertrauliche und/oder rechtlich geschuetzte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtuemlich erhalten haben, informieren Sie bitte sofort den Absender und loeschen Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet. This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and delete this e-mail. Any unauthorized copying, disclosure or distribution of the contents in this e-mail is strictly forbidden. ******************************************* Hans-Peter Reichert 2009-03-16T14:35:24Z post24424: Re: AW: Qnx IDE: Tip of the Day #3: System Profiler - splitting kernel trace file http://community.qnx.com/sf/go/post24424 HP - Would it be possible for you to send me your trace file, build ID, selection range and which filters you had enabled? I'm unable to reproduce on my machine, so it is most likely something specific to your trace. David Cummings(deleted) 2009-03-16T14:14:26Z post24386: Qnx IDE: Tip of the Day #4: Show Key Assist http://community.qnx.com/sf/go/post24386 One of my favorite features of the IDE is the "Show Key Assist" shortcut key. Simply press CTRL+SHIFT+L and you will be presented with a list of available shortcut keys for your current editor. It's a great way to quickly find out available actions and to find out shortcut keys that you can use to speed up your development. David Cummings(deleted) 2009-03-15T17:30:16Z post24323: Re: AW: Qnx IDE: Tip of the Day #3: System Profiler - splitting kernel trace file http://community.qnx.com/sf/go/post24323 we broke something... I will open a PR. We may need your .kev file. Please post bugs on general forum next time. Elena Laskavaia 2009-03-13T14:45:38Z post24322: AW: Qnx IDE: Tip of the Day #3: System Profiler - splitting kernel trace file http://community.qnx.com/sf/go/post24322 doing this with the latest release, gives me an excpetion when opening the newly generated kev !ENTRY org.eclipse.ui 4 0 2009-03-13 15:39:33.540 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NullPointerException) at org.eclipse.swt.SWT.error(SWT.java:3777) at org.eclipse.swt.SWT.error(SWT.java:3695) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3800) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3425) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504) at org.eclipse.equinox.launcher.Main.run(Main.java:1236) Caused by: java.lang.NullPointerException at com.qnx.tools.ide.SystemProfiler.summary.pane.SummaryData.getSystemTimings(SummaryData.java:161) at com.qnx.tools.ide.SystemProfiler.summary.pane.SummaryPane.updateSummaryData(SummaryPane.java:485) at com.qnx.tools.ide.SystemProfiler.summary.pane.SummaryPane$2.summaryUpdated(SummaryPane.java:379) at com.qnx.tools.ide.SystemProfiler.summary.pane.SummaryData$2$1.run(SummaryData.java:70) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133) ... 22 more >-----Ursprüngliche Nachricht----- >Von: Elena Laskavaia [mailto:community-noreply@qnx.com] >Gesendet: Freitag, 13. März 2009 15:35 >An: tips-ide >Betreff: Qnx IDE: Tip of the Day #3: System Profiler - >splitting kernel trace file > >System Profiler's kernel trace files are usually huge. Because >of the amount of aggregation System Profiler does it is >painfully slow sometimes. If you are isolated a problem and >want to work on or share a smaller file, you can select >desired time line interval in the System Profiler editor and >export it as individual .kev file. >To do that select File->Save As... menu and you would be >prompted to enter a file name. Press OK. >Open this new file in the editor or send to a friend. > >_______________________________________________ >Tip of the Day >http://community.qnx.com/sf/go/post24319 > > ******************************************* Harman Becker Automotive Systems GmbH Management Board: Dr. Klaus Blickle (Chairman), Dr. Udo Hüls, Michael Mauser Chairman of the Supervisory Board: Ansgar Rempp | Domicile: Karlsbad | Local Court Mannheim: Register No. 361395 ******************************************* Diese E-Mail enthaelt vertrauliche und/oder rechtlich geschuetzte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtuemlich erhalten haben, informieren Sie bitte sofort den Absender und loeschen Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet. This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and delete this e-mail. Any unauthorized copying, disclosure or distribution of the contents in this e-mail is strictly forbidden. ******************************************* Hans-Peter Reichert 2009-03-13T14:43:42Z post24319: Qnx IDE: Tip of the Day #3: System Profiler - splitting kernel trace file http://community.qnx.com/sf/go/post24319 System Profiler's kernel trace files are usually huge. Because of the amount of aggregation System Profiler does it is painfully slow sometimes. If you are isolated a problem and want to work on or share a smaller file, you can select desired time line interval in the System Profiler editor and export it as individual .kev file. To do that select File->Save As... menu and you would be prompted to enter a file name. Press OK. Open this new file in the editor or send to a friend. Elena Laskavaia 2009-03-13T14:34:50Z post24251: Re: Qne IDE: Tip of the Day #3: Bookmarks http://community.qnx.com/sf/go/post24251 Only two commands can be bound to shortcuts - Add Bookmark and Next Bookmark. To add binding use Keys Preferences from Windows menu. Kevin Stallard wrote: > Is there a way to do this with key strokes? Some combination of an F2 key > for example: F2 - Next book mark, Shift-F2- Prev book mark, Ctrl-F2 - Set > Bookmark at current cursor line, Shift-Ctrl-F2 remove bookmark at current > line? > > Thanks > Kevin > Elena Laskavaia 2009-03-12T16:17:31Z post24237: RE: Qne IDE: Tip of the Day #3: Bookmarks http://community.qnx.com/sf/go/post24237 Is there a way to do this with key strokes? Some combination of an F2 key for example: F2 - Next book mark, Shift-F2- Prev book mark, Ctrl-F2 - Set Bookmark at current cursor line, Shift-Ctrl-F2 remove bookmark at current line? Thanks Kevin -----Original Message----- From: Elena Laskavaia [mailto:community-noreply@qnx.com] Sent: 2009-03-12 08:46 To: tips-ide Subject: Qne IDE: Tip of the Day #3: Bookmarks If you deal with complex software you may want to remember some interesting places in your code. You can do it with different ways, and one of them is to use bookmarks. To bookmark a source location use context menu in the editor on the line you want the bookmark (click on the left border on the editor, where markers are usually displayed) and select "Add Bookmark...". To view bookmarks open Bookmarks view Window > Show View > Other. -> General -> Bookmarks. There are couple other ways to do similar thing: editor navigation, TODO comments in code and Mylin plugin context navigation. See more info: Bookmarks: http://www.luisdelarosa.com/2005/02/16/eclipse-tip-use-bookmarks-to-track-im portant-places-in-your-code/ Mylin: http://www.eclipse.org/mylyn/ _______________________________________________ Tip of the Day http://community.qnx.com/sf/go/post24232 Kevin Stallard(deleted) 2009-03-12T14:59:41Z post24232: Qne IDE: Tip of the Day #3: Bookmarks http://community.qnx.com/sf/go/post24232 If you deal with complex software you may want to remember some interesting places in your code. You can do it with different ways, and one of them is to use bookmarks. To bookmark a source location use context menu in the editor on the line you want the bookmark (click on the left border on the editor, where markers are usually displayed) and select "Add Bookmark...". To view bookmarks open Bookmarks view Window > Show View > Other… -> General -> Bookmarks. There are couple other ways to do similar thing: editor navigation, TODO comments in code and Mylin plugin context navigation. See more info: Bookmarks: http://www.luisdelarosa.com/2005/02/16/eclipse-tip-use-bookmarks-to-track-important-places-in-your-code/ Mylin: http://www.eclipse.org/mylyn/ Elena Laskavaia 2009-03-12T14:45:47Z post24145: Qnx IDE: Tip of the Day #2: Bind "Build Project" command to keyboard shortcut http://community.qnx.com/sf/go/post24145 To fast access to "Build Project" command you can define a keyboard shortcut (e.g. <F6>, you can use any other free keystroke). The following procedure lets you define build shortcut which would work from Project Navigator and C++ Editor (for IDE 4.5 and 4.6). * Select Windows->Preferences... * Type "Keys" in the filter (top left) * Select "Keys" from the left tree * Check "Include unbound commands" checkbox * Type "build" in right panel filter * Select "Build Project" command * Select Binding field * Press keystroke <F6> * Click Apply * Click Copy command * Select "C/C++ Editor" in When combo box * Select Binding field and press <F6> * Click Apply again Elena Laskavaia 2009-03-11T15:42:05Z post24054: Re: Qnx IDE: Tip of the Day #1: Hyper-link source navigation http://community.qnx.com/sf/go/post24054 Using hyper-link navigation it picks definition if it can, if you do it again on definition symbol you go to declaration. Kevin Stallard wrote: > Is there a way to choose between the declaration and the definition? > Elena Laskavaia 2009-03-10T18:00:13Z post24053: RE: Qnx IDE: Tip of the Day #1: Hyper-link source navigation http://community.qnx.com/sf/go/post24053 Is there a way to choose between the declaration and the definition? Kevin -----Original Message----- From: Elena Laskavaia [mailto:community-noreply@qnx.com] Sent: 2009-03-10 10:28 To: tips-ide Subject: Qnx IDE: Tip of the Day #1: Hyper-link source navigation The most commonly used navigation in the source code is the navigation from usage of function or variable or type to the place it is defined or declared. In IDE to achieve this you can use hyper link editor navigation: holding Ctrl button hover over the identifier in the source code editor - it will become hyper-link (blue and highlighted), click on it to open definition of this symbol. _______________________________________________ Tip of the Day http://community.qnx.com/sf/go/post24038 Kevin Stallard(deleted) 2009-03-10T17:56:02Z post24044: Re: Qnx IDE: Tip of the Day #1: Hyper-link source navigation http://community.qnx.com/sf/go/post24044 It should be the same, it is just easier (at least for me) to do then selecting from context menu or pressing F3. > What is the different between this and "Open Declaration". > > Elena Laskavaia 2009-03-10T16:53:53Z post24042: RE: Qnx IDE: Tip of the Day #1: Hyper-link source navigation http://community.qnx.com/sf/go/post24042 > -----Original Message----- > From: Elena Laskavaia [mailto:community-noreply@qnx.com] > Sent: March-10-09 12:28 PM > To: tips-ide > Subject: Qnx IDE: Tip of the Day #1: Hyper-link source navigation > > The most commonly used navigation in the source code is the navigation > from usage of function or variable or type to the place it is defined > or declared. In IDE to achieve this you can use hyper link editor > navigation: holding Ctrl button hover over the identifier in the source > code editor - it will become hyper-link (blue and highlighted), click > on it to open definition of this symbol. What is the different between this and "Open Declaration". > > _______________________________________________ > Tip of the Day > http://community.qnx.com/sf/go/post24038 > Mario Charest 2009-03-10T16:51:07Z post24038: Qnx IDE: Tip of the Day #1: Hyper-link source navigation http://community.qnx.com/sf/go/post24038 The most commonly used navigation in the source code is the navigation from usage of function or variable or type to the place it is defined or declared. In IDE to achieve this you can use hyper link editor navigation: holding Ctrl button hover over the identifier in the source code editor - it will become hyper-link (blue and highlighted), click on it to open definition of this symbol. Elena Laskavaia 2009-03-10T16:27:53Z