debug errors (technique) in CAMB
Posted: December 31 2016
Dear All CAMBgurus,
I am a primary user of CAMB, I wish to follow the program's running line by line. My software environment is MacOSX10.10+gfortran5.2. I changed two lines of the Makefile as follows
DEBUGFLAGS = -O3 -fopenmp -ffast-math -fmax-errors=4
FFLAGS = -g -cpp -fbounds-check -fbacktrace -ffree-line-length-none -fmax-errors=4 -ffpe-trap=invalid,overflow,zero
so that I can use lldb of MacOSX-gfortran to debug the program. Now I encounter he problem of not being able to view the value of variables in the original program. An example of my debug outout is as follows
error: camb {0x00007b68}: unhandled type tag 0x0012
(DW_TAG_string_type), please file a bug and attach the file at the start of this
error message
Process 6753 stopped
* thread #1: tid = 0xe9ef, 0x000000010010aa4b camb`driver + 1724 at
inidriver.F90:107, queue = 'com.apple.main-thread', stop reason = step over
frame #0: 0x000000010010aa4b camb`driver + 1724 at inidriver.F90:107
104 call DarkEnergy_ReadParams(DefIni)
105
106 P%h0 = Ini_Read_Double('hubble')
-> 107 tempvar = P%h0
108
109 if (Ini_Read_Logical('use_physical',.false.)) then
110 P%omegab = Ini_Read_Double('ombh2')/(P%H0/100)**2
(lldb) print P%h0
error: warning: got name from symbols: P
error: use of undeclared identifier 'h0'
error: 1 errors parsing expression
(lldb) print tempvar
(double) $1 = 4.9865057503465331E-318
(lldb)
I want to view what's the value of P%h0, but I cannot do that directly. I have to declare local variable tempvar in advances. This is too too too troublesome for my further debugging of the system.
Can any CAMBguru gives me a hints to solve this question? Thank you very much!
I am a primary user of CAMB, I wish to follow the program's running line by line. My software environment is MacOSX10.10+gfortran5.2. I changed two lines of the Makefile as follows
DEBUGFLAGS = -O3 -fopenmp -ffast-math -fmax-errors=4
FFLAGS = -g -cpp -fbounds-check -fbacktrace -ffree-line-length-none -fmax-errors=4 -ffpe-trap=invalid,overflow,zero
so that I can use lldb of MacOSX-gfortran to debug the program. Now I encounter he problem of not being able to view the value of variables in the original program. An example of my debug outout is as follows
error: camb {0x00007b68}: unhandled type tag 0x0012
(DW_TAG_string_type), please file a bug and attach the file at the start of this
error message
Process 6753 stopped
* thread #1: tid = 0xe9ef, 0x000000010010aa4b camb`driver + 1724 at
inidriver.F90:107, queue = 'com.apple.main-thread', stop reason = step over
frame #0: 0x000000010010aa4b camb`driver + 1724 at inidriver.F90:107
104 call DarkEnergy_ReadParams(DefIni)
105
106 P%h0 = Ini_Read_Double('hubble')
-> 107 tempvar = P%h0
108
109 if (Ini_Read_Logical('use_physical',.false.)) then
110 P%omegab = Ini_Read_Double('ombh2')/(P%H0/100)**2
(lldb) print P%h0
error: warning: got name from symbols: P
error: use of undeclared identifier 'h0'
error: 1 errors parsing expression
(lldb) print tempvar
(double) $1 = 4.9865057503465331E-318
(lldb)
I want to view what's the value of P%h0, but I cannot do that directly. I have to declare local variable tempvar in advances. This is too too too troublesome for my further debugging of the system.
Can any CAMBguru gives me a hints to solve this question? Thank you very much!