/*@C PetscSetDebuggerFromString - Set the complete path for the debugger for PETSc to use. Not collective Level: developer .seealso: PetscSetDebugger(), PetscSetDefaultDebugger() @*/ PetscErrorCode PetscSetDebuggerFromString(const char *string) { const char *debugger = NULL; PetscBool xterm = PETSC_TRUE; char *f; PetscErrorCode ierr; PetscFunctionBegin; ierr = PetscStrstr(string, "noxterm", &f);CHKERRQ(ierr); if (f) xterm = PETSC_FALSE; ierr = PetscStrstr(string, "ddd", &f);CHKERRQ(ierr); if (f) xterm = PETSC_FALSE; ierr = PetscCheckDebugger_Private("xdb", string, &debugger);CHKERRQ(ierr); ierr = PetscCheckDebugger_Private("dbx", string, &debugger);CHKERRQ(ierr); ierr = PetscCheckDebugger_Private("xldb", string, &debugger);CHKERRQ(ierr); ierr = PetscCheckDebugger_Private("gdb", string, &debugger);CHKERRQ(ierr); ierr = PetscCheckDebugger_Private("idb", string, &debugger);CHKERRQ(ierr); ierr = PetscCheckDebugger_Private("xxgdb", string, &debugger);CHKERRQ(ierr); ierr = PetscCheckDebugger_Private("ddd", string, &debugger);CHKERRQ(ierr); ierr = PetscCheckDebugger_Private("kdbg", string, &debugger);CHKERRQ(ierr); ierr = PetscCheckDebugger_Private("ups", string, &debugger);CHKERRQ(ierr); ierr = PetscCheckDebugger_Private("workshop", string, &debugger);CHKERRQ(ierr); ierr = PetscCheckDebugger_Private("pgdbg", string, &debugger);CHKERRQ(ierr); ierr = PetscCheckDebugger_Private("pathdb", string, &debugger);CHKERRQ(ierr); ierr = PetscCheckDebugger_Private("lldb", string, &debugger);CHKERRQ(ierr); ierr = PetscSetDebugger(debugger, xterm);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@ PetscSetDefaultDebugger - Causes PETSc to use its default debugger. Not collective Level: advanced .seealso: PetscSetDebugger(), PetscSetDebuggerFromString() @*/ PetscErrorCode PETSC_DLLEXPORT PetscSetDefaultDebugger(void) { PetscErrorCode ierr; PetscFunctionBegin; #if defined(PETSC_USE_DBX_DEBUGGER) ierr = PetscSetDebugger("dbx",PETSC_TRUE);CHKERRQ(ierr); #elif defined(PETSC_USE_XDB_DEBUGGER) ierr = PetscSetDebugger("xdb",PETSC_TRUE);CHKERRQ(ierr); #elif defined(PETSC_USE_IDB_DEBUGGER) ierr = PetscSetDebugger("idb",PETSC_TRUE);CHKERRQ(ierr); #else /* Default is gdb */ ierr = PetscSetDebugger("gdb",PETSC_TRUE);CHKERRQ(ierr); #endif ierr = PetscSetDebugTerminal("xterm -e");CHKERRQ(ierr); PetscFunctionReturn(0); }