.:debug:home: Difference between revisions
Daviddelene (talk | contribs) No edit summary |
Daviddelene (talk | contribs) No edit summary |
||
Line 9: | Line 9: | ||
virtual_machine=0 | virtual_machine=0 | ||
export verbose_mode virtual_machine | export verbose_mode virtual_machine | ||
==Additional Debugging Information== | |||
Many scripts have -d* options to provide additional debugging information from print statement that help with debugging the code when things do not work, when there is an error generated. For example, the process_raw script has -ddd options, which is most useful and gives the most output, including information on every header read, which is useful to determine which data block (instrument) is causing the error. If a data block is not read correctly, following data blocks can be incorrectly read. | |||
==Debugging Example== | ==Debugging Example== | ||
Line 31: | Line 34: | ||
Results should be -> | Results should be -> | ||
'******* Testing Standard Processing for the IPHEX project *******'<br> | |||
--Cleaning up old files in TESTING_DIR .......................... Done<br> | --Cleaning up old files in TESTING_DIR .......................... Done<br> | ||
--Coping files to TESTING_DIR ................................... Done<br> | --Coping files to TESTING_DIR ................................... Done<br> | ||
Line 42: | Line 45: | ||
diff: /home/delene/TESTING/FlightData/20140429_152103/PostProcessing/14_04_29_15_21_03.iphex: No such file or directory<br> | diff: /home/delene/TESTING/FlightData/20140429_152103/PostProcessing/14_04_29_15_21_03.iphex: No such file or directory<br> | ||
!!Valided: No difference found in output file.<br> | !!Valided: No difference found in output file.<br> | ||
**** Finished (test_project_iphex) ******************************<br> | '**** Finished (test_project_iphex) ******************************'<br> | ||
<br> | |||
Now need to know what script is being call so look at process_all_iphex -> | Now need to know what script is being call so look at process_all_iphex -> | ||
which calls process_all, which calls process_raw that creates the error. | which calls process_all, which calls process_raw that creates the error. | ||
Line 50: | Line 53: | ||
directory -> | directory -> | ||
process_raw to get -> | process_raw to get -><br> | ||
% Attempt to call undefined procedure: 'GPSGENERATOR'. | % Attempt to call undefined procedure: 'GPSGENERATOR'.<br> | ||
% Execution halted at: PROCESS_WMI 1116 /home/delene/CoPAS/ADPAA/src/Level1/process_raw/process_WMI.pro | % Execution halted at: PROCESS_WMI 1116 /home/delene/CoPAS/ADPAA/src/Level1/process_raw/process_WMI.pro<br> | ||
% PROCESS_RAW 598 /home/delene/CoPAS/ADPAA/src/Level1/process_raw/process_raw.pro | % PROCESS_RAW 598 /home/delene/CoPAS/ADPAA/src/Level1/process_raw/process_raw.pro<br> | ||
% START_PROCESS_RAW 97 /home/delene/CoPAS/ADPAA/src/Level1/process_raw/start_process_raw.pro | % START_PROCESS_RAW 97 /home/delene/CoPAS/ADPAA/src/Level1/process_raw/start_process_raw.pro<br> | ||
% $MAIN$ | % $MAIN$ <br> | ||
<br> | |||
Looking at the compile of GPSGENERATOR -> | Looking at the compile of GPSGENERATOR -> | ||
print x[2] | print x[2] |
Revision as of 08:44, 16 August 2023
Debugging ADPAA Processing Scipts
Hopefully, ADPAA will work to process data files and continue to process data files. However, ADPAA is not design to be check for all cases so new items happen that ADPAA can not handle. Additionally, things may of worked in the past; however, an update could cause things to break. The idea is that these things should be easy to fix and changes/updates/problem are documents.
Debugging Process
There are two items to understand when debugging ADPAA scripts. 1.) You need to understand the https://adpaa.sourceforge.io/wiki/index.php/.:scripts:home#Hierarchical_Processing_Scripts and how to obtain information on where the error occurs. To obtain error information, run a compiled version of ADPAA and obtain verbose output by setting the verbose_mode and virtual_machine system variables. For example, in a terminal window:
verbose_mode=1 virtual_machine=0 export verbose_mode virtual_machine
Additional Debugging Information
Many scripts have -d* options to provide additional debugging information from print statement that help with debugging the code when things do not work, when there is an error generated. For example, the process_raw script has -ddd options, which is most useful and gives the most output, including information on every header read, which is useful to determine which data block (instrument) is causing the error. If a data block is not read correctly, following data blocks can be incorrectly read.
Debugging Example
First create an error to find in ADPAA
In ${ADPAA_DIR}/Level1/process_raw/GPSGenerator.pro, add print x[2] to start of the program ->
PRO GPSGenerator,DataDir,GPS_Altitude,flight_date,unit_GPSAircraft,sfm, $ AircraftType,ProjectName,Comments
print x[2]
Run ADTAE IPHEX testing Code
First make sure system variables are correct ->
verbose_mode=1 virtual_machine=0 export verbose_mode virtual_machine
Run testing IPHEX scripts -> ${ADTAE_DIR}/TestPrograms/test_project_iphex.bash
Results should be ->
'******* Testing Standard Processing for the IPHEX project *******'
--Cleaning up old files in TESTING_DIR .......................... Done
--Coping files to TESTING_DIR ................................... Done
Processing the 14_04_29_15_21_03.sea file ....................... ERROR
Creating 14_04_29_15_21_03.serial.GPS.10sec ..................... Done
Processing the 14_04_29_15_21_03.serial.GPS.raw file ............ Done
SODA2 Processing ................................................ Skipped
Creating 2DS-HVPS3 merge spectra file ........................... Skipped
ERROR (process_nevzorov): twods_data_dir not set. Exiting.
diff: /home/delene/TESTING/FlightData/20140429_152103/PostProcessing/14_04_29_15_21_03.iphex: No such file or directory
!!Valided: No difference found in output file.
'**** Finished (test_project_iphex) ******************************'
Now need to know what script is being call so look at process_all_iphex ->
which calls process_all, which calls process_raw that creates the error.
Now run process_raw on the 14_04-29_1521_03.sea file in the ~/TESTING/FlightData/20140429_152103/PostProcessing/ directory ->
process_raw to get ->
% Attempt to call undefined procedure: 'GPSGENERATOR'.
% Execution halted at: PROCESS_WMI 1116 /home/delene/CoPAS/ADPAA/src/Level1/process_raw/process_WMI.pro
% PROCESS_RAW 598 /home/delene/CoPAS/ADPAA/src/Level1/process_raw/process_raw.pro
% START_PROCESS_RAW 97 /home/delene/CoPAS/ADPAA/src/Level1/process_raw/start_process_raw.pro
% $MAIN$
Looking at the compile of GPSGENERATOR ->
print x[2]
% Syntax error. At: /home/delene/CoPAS/ADPAA/src/Level1/process_raw/GPSGenerator.pro, Line 55
So the error is in line 55 of GPSGenerator, which needs to be remove to fit.