<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><br></div>  Since PETSc users seem to have a great deal of difficulty using a debugger (even though they profile their code with debugging turned on) is there any way we could somehow host/manage/develop/something a debugging server that would automatically give back information information about the process state on a crash? We have have -start_in_debugger and -on_error_attach_debugger but those seem beyond the capabilities of most users.<div><br></div><div>   When I started PETSc 2.0 I investigated having a "library interface” to the debugger so that PETSc library code itself could get stack frame information, variable values etc from the debugger but given the horrible horrible state of gdb source at that time it was hopeless. Is there any system that is not hopeless, lldb? What about having an extra thread that “talks” to the debugger on a crash, so the user doesn’t need to type bt, where, print variablename etc </div><div><br></div><div>   Yes people should be comfortable with the basics of a debugger, but if they are not can we do something for them? (For example we keep stack traces manually to help users know where problems happen without using the debugger). Just seeing the full and accurate stack trace after a segv would be a big step forward.</div><div><br></div><div>  Barry</div><div><br><div><br><div>Begin forwarded message:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; color:rgba(0, 0, 0, 1.0);"><b>From: </b></span><span style="font-family:'Helvetica';">Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; color:rgba(0, 0, 0, 1.0);"><b>Subject: </b></span><span style="font-family:'Helvetica';"><b>Re: [petsc-users] Compiling program with program files dependencies (SLEPC )</b><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; color:rgba(0, 0, 0, 1.0);"><b>Date: </b></span><span style="font-family:'Helvetica';">April 25, 2014 at 9:55:17 AM CDT<br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; color:rgba(0, 0, 0, 1.0);"><b>To: </b></span><span style="font-family:'Helvetica';">Steve Ndengue <<a href="mailto:steve.ndengue@gmail.com">steve.ndengue@gmail.com</a>><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; color:rgba(0, 0, 0, 1.0);"><b>Cc: </b></span><span style="font-family:'Helvetica';">petsc-users <<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a>><br></span></div><br><div><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Apr 25, 2014 at 9:45 AM, Steve Ndengue <span dir="ltr"><<a href="mailto:steve.ndengue@gmail.com" target="_blank">steve.ndengue@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFCC99" text="#000099">
    <div><font size="-1">Dear all, <br>
        <br>
        Sorry, I had a typo: I was still editing the .f90 program file
        instead of the .F90 file.<br>
        <br>
        However, now I am having troubles forming the matrice I would
        like to diagonalize.<br>
        Presently the size is not yet huge and it could be held in a
        previously computed matrix of dimension N*N.<br>
        <br>
        I am using the following to build the matrix and the compiling
        from the example 1 and slightly modified:<br>
        <br>
        ***<br>
        <i>!</i><i><br>
        </i><i>        CALL SlepcInitialize(PETSC_NULL_CHARACTER,ierr)</i><i><br>
        </i><i>        CALL MPI_Comm_rank(PETSC_COMM_WORLD,rank,ierr)</i><i><br>
        </i><i>        nn = N</i><i><br>
        </i><i>!        CALL
          PetscOptionsGetInt(PETSC_NULL_CHARACTER,'-n',n,flg,ierr)</i><i><br>
        </i><i>!</i><i><br>
        </i><i></i><i><br>
        </i><i>!</i><i><br>
        </i><i>! - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          - - - - - - - - </i><i><br>
        </i><i>!     Compute the operator matrix that defines the
          eigensystem, Ax=kx</i><i><br>
        </i><i>! - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          - - - - - - - - </i><i><br>
        </i><i><br>
        </i><i>      call MatCreate(PETSC_COMM_WORLD,A,ierr)</i><i><br>
        </i><i>      call
          MatSetSizes(A,PETSC_DECIDE,PETSC_DECIDE,nn,nn,ierr)</i><i><br>
        </i><i>      call MatSetFromOptions(A,ierr)</i><i><br>
        </i><i>      call MatSetUp(A,ierr)</i><i><br>
        </i><i><br>
        </i><i>      call MatGetOwnershipRange(A,Istart,Iend,ierr)</i><i><br>
        </i><i>      do i=Istart,Iend-1</i><i><br>
        </i><i>      do j=0,nn-1</i><i><br>
        </i><i>      call
          MatSetValue(A,i,-1,j,-1,H_mat(i,j),INSERT_VALUES,ierr)</i><i><br>
        </i><i>      enddo</i><i><br>
        </i><i>      enddo</i><i><br>
        </i><i>      call MatAssemblyBegin(A,MAT_FINAL_ASSEMBLY,ierr)</i><i><br>
        </i><i>      call MatAssemblyEnd(A,MAT_FINAL_ASSEMBLY,ierr)!    
          ** Create eigensolver context</i><i><br>
        </i><i>      CALL EPSCreate(PETSC_COMM_WORLD,solver,ierr)</i><i><br>
        </i><i>!</i><i>     ** Set operators. In this case, it is a
          standard eigenvalue problem</i><i><br>
        </i><i>      CALL
          EPSSetOperators(solver,A,PETSC_NULL_OBJECT,ierr)</i><i><br>
        </i><i>print*,'here10,ierr',ierr</i><i><br>
        </i><i>      CALL EPSSetProblemType(solver,EPS_HEP,ierr)</i><i><br>
        </i><i>!     ** Set working dimensions</i><i><br>
        </i><i>      CALL
          EPSSETDimensions(solver,nstates,10*nstates,2*nstates)</i><i><br>
        </i><i>!     ** Set calculation of lowest eigenvalues</i><i><br>
        </i><i>      CALL
          EPSSetWhichEigenpairs(solver,EPS_SMALLEST_REAL)</i><i><br>
        </i><i><br>
        </i><i>!     ** Set solver parameters at runtime</i><i><br>
        </i><i>      CALL EPSSetFromOptions(solver,ierr)</i><i><br>
        </i><i>! - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          - - - - - - - - </i><i><br>
        </i><i>!     Solve the eigensystem</i><i><br>
        </i><i>! - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          - - - - - - - - </i><i><br>
        </i><i>      CALL EPSSolve(solver,ierr)</i><i><br>
        </i><i>print*,'here6'</i><i><br>
        </i><i>!     ** Optional: Get some information from the solver
          and display it</i><i><br>
        </i><i>      CALL EPSGetType(solver,tname,ierr)</i><i><br>
        </i><i>      if (rank .eq. 0) then</i><i><br>
        </i><i>        write(*,120) tname</i><i><br>
        </i><i>      endif</i><i><br>
        </i><i> 120  format (' Solution method: ',A)</i><i><br>
        </i><i>      CALL
          EPSGetDimensions(solver,nstates,PETSC_NULL_INTEGER,             
          &</i><i><br>
        </i><i>     &                      PETSC_NULL_INTEGER,ierr)</i><i><br>
        </i><i>      if (rank .eq. 0) then</i><i><br>
        </i><i>        write(*,130) nstates</i><i><br>
        </i><i>      endif</i><i><br>
        </i><i> 130  format (' Number of requested eigenvalues:',I4)</i><i><br>
        </i><i>! - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          - - - - - - - - </i><i><br>
        </i><i>!     Display solution and clean up</i><i><br>
        </i><i>! - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          - - - - - - - - </i><i><br>
        </i><i>      CALL
          EPSPrintSolution(solver,PETSC_NULL_OBJECT,ierr)</i><i><br>
        </i><i>      CALL EPSDestroy(solver,ierr)</i><i><br>
        </i><i>***</i><br>
        <br>
        I get the following error message when making the code:<br></font></div></div></blockquote><div><br></div><div>Run in the debugger, -start_in_debugger, and get a stack trace for the error.</div><div><br></div><div>
  Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFCC99" text="#000099"><div><font size="-1">
        ***<br>
        <i><b>[0]PETSC ERROR:
            ------------------------------------------------------------------------</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR: Caught signal number 11 SEGV:
            Segmentation Violation, probably memory access out of range</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR: Try option -start_in_debugger or
            -on_error_attach_debugger</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR: or see
            <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind" target="_blank">http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind</a>[0]PETSC
            ERROR: or try <a href="http://valgrind.org/" target="_blank">http://valgrind.org</a> on GNU/linux and Apple Mac
            OS X to find memory corruption errors</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR: likely location of problem given
            in stack below</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR: ---------------------  Stack
            Frames ------------------------------------</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR: Note: The EXACT line numbers in
            the stack are not available,</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR:       INSTEAD the line number of
            the start of the function</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR:       is given.</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR: --------------------- Error
            Message ------------------------------------</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR: Signal received!</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR:
            ------------------------------------------------------------------------</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR: Petsc Release Version 3.4.4,
            Mar, 13, 2014 </b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR: See docs/changes/index.html for
            recent updates.</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR: See docs/faq.html for hints
            about trouble shooting.</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR: See docs/index.html for manual
            pages.</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR:
            ------------------------------------------------------------------------</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR: ./</b></i><i><b>PgmPrincipal</b></i><i><b>
            on a arch-linux2-c-debug named r10dawesr by ndengues Fri Apr
            25 09:36:59 2014</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR: Libraries linked from
/usr/local/home/ndengues/Downloads/Libraries/petsc-3.4.4/arch-linux2-c-debug/lib</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR: Configure run at Thu Apr 24
            20:35:39 2014</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR: Configure options --with-cc=gcc
            --with-fc=gfortran --download-f-blas-lapack --download-mpich</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR:
            ------------------------------------------------------------------------</b></i><i><b><br>
          </b></i><i><b>[0]PETSC ERROR: User provided function() line 0
            in unknown directory unknown file</b></i><i><b><br>
          </b></i><i><b>application called MPI_Abort(MPI_COMM_WORLD, 59)
            - process 0</b></i><i><b><br>
          </b></i><i><b>[cli_0]: aborting job:</b></i><i><b><br>
          </b></i><i><b>application called MPI_Abort(MPI_COMM_WORLD, 59)
            - process 0</b></i><br>
        ***<br>
        <br>
        <br>
        <br>
        Once more, the program execute without troubles for all the examples
        in the package.<br>
        <br>
        Sincerely,<br>
        <br>
      </font><br>
      On 04/24/2014 10:14 PM, Satish Balay wrote:<br>
    </div>
    <blockquote type="cite">
      <pre>petsc examples work fine.

send us the code that breaks. Also copy/paste the *complete* output from 'make' when
you attempt to compile this code.

Satish

On Thu, 24 Apr 2014, Barry Smith wrote:

</pre>
      <blockquote type="cite">
        <pre>  Try .F files instead of .F90 some Fortran compilers handle preprocessing in different ways for .F and .F90

   Please also send configure.log and make.log so we know what compilers etc you are using.

  Barry

  Note that we are using C pre processing directives, 

On Apr 24, 2014, at 7:57 PM, Steve Ndengue <a href="mailto:steve.ndengue@gmail.com" target="_blank"><steve.ndengue@gmail.com></a> wrote:

</pre>
        <blockquote type="cite">
          <pre>The results is the same with lower case letters...


On 04/24/2014 07:39 PM, Matthew Knepley wrote:
</pre>
          <blockquote type="cite">
            <pre>On Thu, Apr 24, 2014 at 8:36 PM, Steve Ndengue <a href="mailto:steve.ndengue@gmail.com" target="_blank"><steve.ndengue@gmail.com></a> wrote:
Thank you for the quick reply.

It partly solved the problem; the PETSC and SLEPC files are now included in the compilation.

However the Warning are now error messages!
***
pgm_hatom_offaxis_cyl.F90:880:0: error: invalid preprocessing directive #INCLUDE
pgm_hatom_offaxis_cyl.F90:887:0: error: invalid preprocessing directive #IF
pgm_hatom_offaxis_cyl.F90:890:0: error: invalid preprocessing directive #ELSE
pgm_hatom_offaxis_cyl.F90:893:0: error: invalid preprocessing directive #ENDIF
***

These should not be capitalized.

  Matt
 
And the corresponding code lines are:
***
#INCLUDE <finclude/slepcepsdef.h>
        USE slepceps

!
 IMPLICIT NONE
!----------------------
!
#IF DEFINED(PETSC_USE_FORTRAN_DATATYPES)
        TYPE(Mat)                                          A
        TYPE(EPS)                                          solver
#ELSE
        Mat                                                A
        EPS                                                solver
#ENDIF
***

Sincerely.

On 04/24/2014 07:25 PM, Satish Balay wrote:
</pre>
            <blockquote type="cite">
              <pre>On Thu, 24 Apr 2014, Steve Ndengue wrote:


</pre>
              <blockquote type="cite">
                <pre>Dear all,

I am having trouble compiling a code with some dependencies that shall call
SLEPC.
The compilation however goes perfectly for the various tutorials and tests in
the package.

A sample makefile looks like:

***

/default: code//
//routines: Rout1.o Rout2.o Rout3.o Module1.o//
//code: PgmPrincipal//
//sources=Rout1.f Rout2.f Rout3.f Module1.f90//

</pre>
              </blockquote>
              <pre>Its best to rename your sourcefiles .F/.F90 [and not .f/.f90
[this enables using default targets from petsc makefiles - and its
the correct notation for preprocessing - which is required by petsc/slepc]


</pre>
              <blockquote type="cite">
                <pre>//objets=Rout1.o Rout2.o Rout3.o Module1.o Pgm//Principal//.o//
//
//%.o: %.f//
//        -${FLINKER} -c $<//

</pre>
              </blockquote>
              <pre>And you shouldn't need to create the above .o.f target.

Satish



</pre>
              <blockquote type="cite">
                <pre>//
//Module1_mod.mod Module1.o: //Module1//.f90//
//        -${FLINKER} -c //Module1//.f90//
//
//include ${SLEPC_DIR}/conf/slepc_common//
//
//Pgm//Principal//: ${objets} chkopts//
//        -${FLINKER} -o $@ ${objets} ${SLEPC_LIB}//
//
//.PHONY: clean//
//        ${RM} *.o *.mod Pgm//Principal//
/
***

The code exits with Warning and error messages of the type:

*Warning: Pgm**Principal**.f90:880: Illegal preprocessor directive**
**Warning: Pgm**Principal**.f90:889: Illegal preprocessor directive**
**Warning: Pgm**Principal**.f90:892: Illegal preprocessor directive**
**Warning: Pgm**Principal**.f90:895: Illegal preprocessor directive*

and

*USE slepceps**
**                    1**
**Fatal Error: Can't open module file 'slepceps.mod' for reading at (1): No
such file or directory


*I do not get these errors with the tests and errors files.


Sincerely,



</pre>
              </blockquote>
            </blockquote>
            <pre>-- 
Steve 




-- 
What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
-- Norbert Wiener
</pre>
          </blockquote>
          <pre>-- 
Steve 



</pre><span class="HOEnZb"><font color="#888888">
        </font></span></blockquote><span class="HOEnZb"><font color="#888888">
        <pre></pre>
      </font></span></blockquote><span class="HOEnZb"><font color="#888888">
      <pre></pre>
    </font></span></blockquote><span class="HOEnZb"><font color="#888888">
    <br>
    <br>
    <pre cols="72">-- 
Steve</pre>
  </font></span></div>

</blockquote></div><br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener
</div></div>
</div></blockquote></div><br></div></body></html>