Sponsored Content
Operating Systems Solaris How to create core through program at the time of crash by handling signals? Post 302739997 by rajeev_ks on Wednesday 5th of December 2012 10:00:37 AM
Old 12-05-2012
How to create core through program at the time of crash by handling signals?

I am in process of writing a library which can make any application of my product capable of creating core in the application's log folder with a product friendly core file name programatically. In my library I am registering for certain signals e.g. SIGILL, SIGFPE, SIGBUS, SIGSEGV, SIGSYS, SIGABRT and in the handler routine of my signal I am forking gcore to create dump of the current process.

I am able to successfully create the core in this manner if any application which uses my library runs a faulty code e.g. Illegal Memory Access (Segmentation Violation) etc. However the core created in this manner does not take me to the faulty code location and displays the Signal Handler routine stack.

On windows this can be done through registering handler by calling SetUnhandledExceptionFilter. When OS calls the handler in case of any unhandled exception it also passes _EXCEPTION_POINTERS which is used for dump creation. The dump created in this manner contains the correct information of faulty code.

Through Solaris signal handling I am only getting signal number in the handler routine. How can create correct core in the given situation on AIX programatically. Forking gcore is not working here as correct core is not getting generated. If any sample program is available then that would be great.

I am using Solaris 10.

Last edited by rajeev_ks; 12-06-2012 at 12:11 PM..
 

10 More Discussions You Might Find Interesting

1. Programming

handling-create new SIGNALS

Hi, i cannot find in which file and function the signals are handled by default.Can anyone help me? How can i create a 33th signal? Thanks (3 Replies)
Discussion started by: Panos
3 Replies

2. UNIX for Dummies Questions & Answers

Smart Crash Handling

Hi, Is there anything you can do to a *nix (SuSE Linux actually) which allows it to *try* to do a reboot if something crashes the system? I know they have something at work (but I don't work with the servers myself) which makes the server reboot if it crashes/locks (works about 80% of the... (0 Replies)
Discussion started by: d11wtq
0 Replies

3. Shell Programming and Scripting

Shel program file handling

Hi, Iam having the file as follows: QWASEDRF1234567890098765 abc@quebex.com 000000000-932333 678394-56=3 9033894 QWASEDRF1234567890098765 abc@quebex.com 000000000-932333 678394-56=3 9033894 OPIUYTREE0986666544443322 dcsx@olivaa.net ... (14 Replies)
Discussion started by: nivas
14 Replies

4. Filesystems, Disks and Memory

/dev/core "link to program crash data"

Hi there, I found a link to a file /dev/core of 17 GB Is it ok??? I couldn't find many information about it. Any suggestion would be appreciated!!! Thanks in advance, Giordano Bruno PS: I'm working with FEDORA 6 (2 Replies)
Discussion started by: Giordano Bruno
2 Replies

5. Programming

detached thread is causing program crash

Hi All, I have scenario where my callback function data_update() can be called anytime. I have written the function data_update() such that it will create detached thread for processing the data sent to this function. data_update() { pthread_attr_t attr_thread; ... (1 Reply)
Discussion started by: wonderman
1 Replies

6. Programming

Memory Fault (core dumped) in ttpy program

I´m writing this program in QNX , I`m kinda new to UNIX and programing in general, and when I try to run it it gives me the Memory Fault error. Can anyone help? #include <stdio.h> #include <fcntl.h> void main(void) {int a,ter; char buf; printf("a="); scanf("%d",a); ter=open... (6 Replies)
Discussion started by: GiganteAsesino
6 Replies

7. Programming

Please help:program hang stuck there signal handling on POSIX Message Queue UNIX C programming

in a single main() function,so need signal handling. Use Posix Message Queue IPC mechanism , can ignore the priority and other linked list message,to implement the scenario: client:Knock Knock server:who's there client: Eric Server:Eric,Welcome. client:exit all process terminated ... (1 Reply)
Discussion started by: ouou
1 Replies

8. UNIX for Dummies Questions & Answers

handling signals without race conditions

Greetings, I am writing a small program in C on UNIX, in which I am using (POSIX reliable) signals. 1. Suppose I have a signal : SIGX, and the corresponding signal handler : sigx_handler. It is possible to receive SIGX in my process, and, while executing sigx_handler, to receive again... (0 Replies)
Discussion started by: aigoia
0 Replies

9. AIX

How to create core through program at the time of crash by handling signals?

I am in process of writing a library which can make any application of my product capable of creating core in the application's log folder with a product friendly core file name programatically. In my library I am registering for certain signals e.g. SIGILL, SIGFPE, SIGBUS, SIGSEGV, SIGSYS, SIGABRT... (1 Reply)
Discussion started by: rajeev_ks
1 Replies

10. UNIX for Advanced & Expert Users

Handling Signals in System Calls

What will happen if signal comes while a system call is being executed? How it will be handled? (1 Reply)
Discussion started by: rupeshkp728
1 Replies
CORE(5) 						      BSD File Formats Manual							   CORE(5)

NAME
core -- memory image file format SYNOPSIS
#include <sys/param.h> DESCRIPTION
A small number of signals which cause abnormal termination of a process also cause a record of the process's in-core state to be written to disk for later examination by one of the available debuggers. (See sigaction(2).) This memory image is written to a file named by default programname.core in the working directory; provided the terminated process had write permission in the directory, and provided the abnormal- ity did not cause a system crash. (In this event, the decision to save the core file is arbitrary, see savecore(8).) The maximum size of a core file is limited by setrlimit(2). Files which would be larger than the limit are not created. The name of the file is controlled via the sysctl(8) variable kern.corefile. The contents of this variable describes a filename to store the core image to. This filename can be absolute, or relative (which will resolve to the current working directory of the program generating it). The following format specifiers may be used in the kern.corefile sysctl to insert additional information into the resulting core file name: %H Machine hostname. %I An index starting at zero until the sysctl debug.ncores is reached. This can be useful for limiting the number of corefiles generated by a particular process. %N process name. %P processes PID. %U process UID. The name defaults to %N.core, yielding the traditional FreeBSD behaviour. By default, a process that changes user or group credentials whether real or effective will not create a corefile. This behaviour can be changed to generate a core dump by setting the sysctl(8) variable kern.sugid_coredump to 1. Corefiles can be compressed by the kernel if the following items are included in the kernel configuration file: options COMPRESS_USER_CORES devices gzio When COMPRESS_USER_CORES is included the following sysctls can control if core files will be compressed: kern.compress_user_cores_gzlevel Gzip compression level. Defaults to -1. kern.compress_user_cores Actually compress user cores. Core files will have the suffix .gz appended to them. EXAMPLES
In order to store all core images in per-user private areas under /var/coredumps, the following sysctl(8) command can be used: sysctl kern.corefile=/var/coredumps/%U/%N.core SEE ALSO
gdb(1), kgdb(1), setrlimit(2), sigaction(2), sysctl(8) HISTORY
A core file format appeared in Version 6 AT&T UNIX. BSD
November 22, 2012 BSD
All times are GMT -4. The time now is 08:01 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy