At some point after upgrading to the automake version of libmesh (and
various other changes, like mpich -> openmpi) none of the MOOSE tests
are running for me.
I'm getting an error from PETSc which suggests that I may have
forgotten to call PetscInitialize():
Options have not been enabled.
You might have forgotten to call PetscInitialize().
but, via print statements, have confirmed that the PetscInitialize()
is definitely getting called in libmesh.C before the error is
Running the code through gdb doesn't provide a useful backtrace... the
error message is printed, and the program exits with code 070
Program exited with code 070.
Alright then... setting a breakpoint in main and stepping through the
code, I see (simplified somewhat for readability, all line numbers are
> MooseInit init(argc, argv);
> 32 LibMeshInit(argc, argv)
> 701 libMesh::LibMeshInit::LibMeshInit
> 703 libMesh::_init(argc, argv, COMM_WORLD_IN);
> 312 void _init (int &argc, char** & argv, MPI_Comm COMM_WORLD_IN)
> 316 libmesh_assert (!libMesh::initialized());
> 279 return libMeshPrivateData::_is_initialized;
> 319 command_line.reset (new GetPot (argc, argv));
> Reading symbols for shared libraries . done (repeated 22 times)
> Framework Information:
> SVN Revision: 15054
> PETSc Version: 3.3.0
> Current Time: Wed Nov 21 12:38:24 2012
> Executable Timestamp: Wed Nov 21 12:32:21 2012
> *** Warning, This code is deprecated, and likely to be removed in future library versions! ../src/mesh/mesh_base.C, line 121, compiled Nov 20 2012 at 14:11:25 ***
> Mesh Information:
> Options have not been enabled.
> You might have forgotten to call PetscInitialize().
So, I don't really understand
1.) Why stepping past line 319 essentially runs all the rest of the
program until the error without letting me step any more?
2.) WTF is causing this error
Any great debugging ideas?