Tips for finding Knowledge Articles

  • - Enter just a few key words related to your question or problem
  • - Add Key words to refine your search as necessary
  • - Do not use punctuation
  • - Search is not case sensitive
  • - Avoid non-descriptive filler words like "how", "the", "what", etc.
  • - If you do not find what you are looking for the first time,reduce the number of key words you enter and try searching again.
  • - Minimum supported Internet Explorer version is IE9
Home  >
article

KB-1681: How to analyze core dump using GDB / DBX / MDB debugger

Centrify DirectControl ,  

12 April,16 at 10:57 AM

Applies to:

All versions of Centrify DirectControl

 

Question:

Stack traces are sometimes requested by Centrify Support for diagnostics.

How are these traces collected? Is there any reason why just the core files cannot be used? 
 

Answer:

Gdb or dbx on AIX are not strictly required - but they help. Centrify's adclient does not need it to operate. 

Reasons for requesting stack traces (Where applicable):

If the adclient crashed and generated a core file, adinfo will automatically pick it up and try to generate a stack trace for analysis. 

It will skip over this if it cannot find gdb/dbx/adb installed on the machine. 

On all *nix platforms, core analysis is a big problem. It must be analyzed in the exact matching environment/platform, with all the correct versions of various executables/libraries to generate meaningful stack trace for analysis. So when a core file is sent in, the exact a matching environment must be created in order to open the core file for analysis - this may not be feasible as this include the following factors:
- Hardware

- All the (3rd party) libraries

- All the libraries must match the same level as the source environment


Therefore, it is always easier to analyze it on the problem system. Please contact the system vendor for more detailed instructions on how to get gdb or mdb installed.

 

====== For gdb ======

Run gdb from the shell prompt:

#gdb /usr/sbin/adclient path_name_of_core_file

where path_name_of_core_file is ALWAYS /var/centrifydc/core.year-day-Month-day:hour:minute

When gdb prompts, enter the commands:

set logging on
set pagination 0
info threads
thread apply all bt full
quit

When entering set logging on, gdb will tell the name of the log file, the default is: gdb.txt

 

====== For dbx ======

Run dbx from the shell prompt:

# dbx /usr/sbin/adclient full_path_to_core_file

When dbx prompts, enter the commands: 

thread
where thread all

If "where thread all" is not supported, type thread to give a list of all the threads:

(dbx) thread

Repeat the steps below for each thread: 

(dbx) thread current <thread number>
(dbx) where
(Repeat this for each thread)
quit
 

====== For mdb ======

 

Run mdb from the shell prompt:

mdb /usr/sbin/adclient full_path_to_core_file

When mdb prompts, enter the commands:

$>/tmp/mdb.out
$G
::walk thread | ::findstack 
::status
::quit
 

Send in the file at /tmp/mdb.out

 

===== pstack instructions (solaris) =======

 

http://developers.sun.com/solaris/articles/manage_core_dump.html

(Link provided as a courtesy)




 

Note:

adclient.dumpcore

This configuration parameter in /etc/centrifydc/centrifydc.conf specifies whether the Centrify DirectControl Agent should be allowed to dump core.

In most cases, this configuration parameter is set using the following GP:

Computer Configuration / Centrify Settings / DirectControl Settings / Adclient Settings / Configure dump core setting 

Enable and choose to generate a core dump once, always, or never

This can also be set manually in the configuration file.The value set for this parameter overrides the default ulimit setting. The parameter value must be one of the following valid options:

1) Never: Centrify DirectControl Agent should never dump core.

2) Once: Centrify DirectControl Agent should dump core only on the first crash after the service starts up.

3) Always: Centrify DirectControl Agent dump core on every crash.

 

Example:

adclient.dumpcore: never

 

Additional reading:

https://blogs.oracle.com/dbx/entry/gdb_vs_dbx_commands_mapping

Still have questions? Click here to log a technical support case, or collaborate with your peers in Centrify's Online Community.