Changes between Version 26 and Version 27 of AppDebug
- Timestamp:
- Apr 29, 2014, 8:29:50 PM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AppDebug
v26 v27 6 6 7 7 When you have built your application and linked it with the BOINC libraries, 8 you can run it in ' standalone mode' (without a BOINC coreclient present).8 you can run it in '''standalone mode''' (without a BOINC client present). 9 9 To do this, put instances of all input files in the same directory (with the proper logical, not physical, names). 10 10 The application should run and produce output files (also with their logical names). … … 17 17 18 18 Once your application works in standalone mode, 19 the next step is to run it under the BOINC client.19 you can test it under the BOINC client, but without a project server. 20 20 This will exercise the various forms of interaction with the client. 21 21 If you already have a working project, skip to the next section. 22 22 23 You can test an application under the BOINC client,24 but without a project server, as shown in the following example.25 23 This example assumes that your executable name is '''test.exe''', 26 24 and that it has an input file with logical name '''in''' and physical name '''input.txt''', … … 28 26 29 27 * Make a directory and put the BOINC client there. Note: you'll need a 6.10.14 or later client. 30 * Put the file [http://boinc.berkeley.edu/trac/browser/trunk/boinc/samples/client_state_save.xml samples/client_state_save.xml] in it 31 (modify this file as needed). 28 * Put the file 29 [http://boinc.berkeley.edu/gitweb/?p=boinc-v2.git;a=blob_plain;f=samples/client_state_save.xml;hb=HEAD samples/client_state_save.xml] 30 in it (modify this file as needed). 32 31 * Create a file '''account_test.xml''' containing 33 32 {{{ … … 61 60 are working. 62 61 63 If your app isn't working, 64 there are two ways to debug it. 62 If your app isn't working, there are two ways to debug it. 65 63 First, if you put 66 64 {{{ … … 70 68 the BOINC client will set up the "slot directory" (usually slots/0/) 71 69 where your application will run, and then exit. 72 (Note: a client based on [24143] or later is needed for this).73 70 You can cd into that directory, 74 71 check that the needed files are there, … … 99 96 It's easier to use BOINC's [http://boinc.berkeley.edu/wiki/Anonymous_platform anonymous platform] mechanism. 100 97 To do this: 101 * Following the [http://boinc.berkeley.edu/wiki/Anonymous_platform directions], create a file 'app_info.xml' in the client's project_* directory, with the appropriate name and version number of your application. 102 * Each time you build a new version of your application, copy the executable into the project_* directory, making sure it has the appropriate name. Then restart the core client. 98 * Following the [http://boinc.berkeley.edu/wiki/Anonymous_platform directions], 99 create a file 'app_info.xml' in the client's project_* directory, 100 with the appropriate name and version number of your application. 101 * Each time you build a new version of your application, copy the executable into the project_* directory, 102 making sure it has the appropriate name. 103 Then restart the core client. 103 104 104 On Unix, it's possible to attach a debugger to a running process. Use 'ps' to find the process ID of your application, then something like 105 On Unix, it's possible to attach a debugger to a running process. 106 Use 'ps' to find the process ID of your application, then something like 105 107 {{{ 106 108 gdb exec_filename PID … … 126 128 and verify that the output files are there. 127 129 128 129 130 == Getting and deciphering stack traces == 130 Once your application is working on your own computers, you're ready to test it with outside computers (alpha testers initially). It may crash on some computers, e.g. because their software or hardware is different from yours. You'll get some information back in the stderr_txt field of the results. If your application called `boinc_init_diagnostics()` with the `BOINC_DIAG_DUMPCALLSTACKENABLED` flag set, and you included symbols, hopefully you'll get symbolic stack traces. 131 Once your application is working on your own computers, 132 you're ready to test it with outside computers (alpha testers initially). 133 It may crash on some computers, e.g. because their software or hardware is different from yours. 134 You'll get some information back in the stderr_txt field of the results. 135 If your application called `boinc_init_diagnostics()` with the `BOINC_DIAG_DUMPCALLSTACKENABLED` flag set, 136 and you included symbols, hopefully you'll get symbolic stack traces. 131 137 132 138 There are separate instructions about [AppDebugWin deciphering a Windows stack trace]. 133 139 134 Otherwise, you should at least get numeric (hex) stack traces. There are several techniques for deciphering these. For details see [MacBacktrace Mac Backtrace]. Although that page is written primarily for the Mac, much of it can be used on Linux and UNIX systems as well. 140 Otherwise, you should at least get numeric (hex) stack traces. 141 There are several techniques for deciphering these. 142 For details see [MacBacktrace Mac Backtrace]. 143 Although that page is written primarily for the Mac, much of it can be used on Linux and UNIX systems as well.