SigSegV during stack unwind (AIX)


 
Thread Tools Search this Thread
Top Forums Programming SigSegV during stack unwind (AIX)
# 1  
Old 09-07-2008
SigSegV during stack unwind (AIX)

Hi
I am getting a strange segmentation fault during the unwind
process. I am trying to throw an object of an Exception class.
During the DoThrow (in libC.a) the stack starts growing until a
Signal is received.
The object thrown is of a class that inherits from a common class,
and the signal only appears rarely - but consistently when it does appear.

I am useing xlC V8 on Aix 5.3 . Dod anyone experience/heard of something like this ? Could it be a copiler problem ?

Thanks
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Kernel Stack vs User Mode Stack

Hi, I am new to the linux kernel development area. I want to know what is the difference between kernel mode stack and user mode stack? Does each process has a user mode stack and a kernel mode stack?? Or Each process has a user mode stack and there is only one kernel mode stack that is shared by... (4 Replies)
Discussion started by: saurabhkoar
4 Replies

2. Programming

SIGSEGV when allocate a certain size

The problem: I need to work with large arrays and after one of my structures grew in size my program started getting segmentation fault. My code where I allocate the arrays: static R1 *tarr; static R2 *rarr; proc_init_mem() { const int t_sz = sizeof(R1) *... (9 Replies)
Discussion started by: migurus
9 Replies

3. UNIX for Advanced & Expert Users

How to create SIGSEGV at particular memory?

Hi I want to create a SIGSEGV when program tries to access one particular area in memory. Is this possible. If so whats the command. (4 Replies)
Discussion started by: jionnet
4 Replies

4. Solaris

sigsegv Fault

I receive a sigsegv failure. I was under the impression that a core file is created everytime a sigsegv occurrs and the process is terminated. I have had two recent occurrances of a core file not being created. Does anyone know why a core file would not be created. (2 Replies)
Discussion started by: amp4cats
2 Replies

5. AIX

Received signal #11, SIGSEGV [default] on AIX 6.1

Hello, One of our customer is getting segmentation fault when he runs his shell script which invokes our executable on AIX 6.1. On AIX 5.3, there were no issues. Here is the truss output. 811242: __loadx(0x0A040000, 0xF0D3A26C, 0x00000000, 0x00000009, 0x00000000) = 0xF026E884... (0 Replies)
Discussion started by: erra_krishna
0 Replies

6. UNIX and Linux Applications

SIGSEGV Signal handling

Hello, Can anybody tell me how can i handle segmentation fault signal, in C code? (2 Replies)
Discussion started by: mustus
2 Replies

7. Programming

SIGSEGV, Segmentation fault

Here is my initiating code: #define NUM 20 static struct tab { int count; int use; } tab; int curtab = 0; int tab_create(int tab_count) { curtab++; tab.use = 1; tab.count = tab_count; kprintf("here!"); return curtab; } (2 Replies)
Discussion started by: micmac700
2 Replies

8. Programming

SIGSEGV problem

Hi. Can someone to help me in a segfault problem? I have a big C++ program that crash from time to time because it receive the SIGSEGV signal. So my question is: Can I find, without using gdb or other debugging tools, which line from source code cause that problem? Or if exist some gdb API... (1 Reply)
Discussion started by: vaidac_coder
1 Replies
Login or Register to Ask a Question
_UNW_createContextForSelf(3X)											     _UNW_createContextForSelf(3X)

NAME
_UNW_createContextForSelf(), _UNW_createContext(), _UNW_destroyContext() - allocate and deallocate unwind library data structure SYNOPSIS
DESCRIPTION
and each initialize a data structure called which is managed by the stack unwind library, supplied as is typically used when a process intends to unwind its own stack. is typically used when a process intends to unwind a different process' stack or the stack of a "dead" process preserved in a core file. When using for unwinding a process (referred to as the target process), the client process is required to provide three parameters: 1. Parameter read_tgt_mem is a function which the unwind library calls to read values from the target process memory including the unwind header, unwind table and unwind information blocks, the procedure call stack, and the Register Stack Engine backing store. It must be able to read from anywhere in the 64-bit address space (even for 32-bit applications) since the Integrity systems' kernel interruption unwind header is read from kernel gateway memory pages. read_tgt_mem has type definition which is defined in as The parameters are almost synonymous with those for memcpy(3C). Parameter dst is the destination address to which parameter length bytes are copied from parameter src. Note that src is of type in order to represent the 64-bit addresses required for reading the kernel gateway page. When unwinding through a 64-bit application, all src and dst addresses used during unwinding are 64-bit point- ers. When unwinding through a 32-bit application's code, most addresses used during unwinding are 32-bit pointers (although the unwind library them to fully qualified 64-bit addresses before calling the target memory reader). The memory model and the term "swizzle" are explained in detail in "Section 1: Memory Model". The only range of addresses which require 64-bit pointers (and therefore unreachable from the 32-bit address space) are those asso- ciated with the unwind header and unwind information for the kernel's signal handler wrapper function The client's memory read call- back function must be able to detect this range and to read this range of addresses. The range is defined at program startup time by the microloader and dynamic loader (or in for fully bound executables) in a structure defined in See and read_tgt_mem's third parameter, ident, is transparent to the unwind library itself, and is provided for the use of the unwinder client program. The client program supplies the unwind library with a value for ident (via the call to which the unwind library in turn passes along to the read_tgt_mem callback. A debugger, for example, can use ident to identify separate threads within the tar- get process. 2. Parameter load_map_from_ip is a function which the unwind library calls in place of calls to when it needs to obtain a for a given IP address in target process memory (See dlmodinfo(3C)). When called, load_map_from_ip must fill in a structure with accurate val- ues for fields and for any valid user process instruction address including instruction addresses associated with (which is the location of the unwind header), and text_base, (which is the location at which the ELF segment is loaded), must each be full 64-bit addresses (as opposed to 32-bit un-swizzled pointers). Linkage_ptr is the (full 64-bit) value of a procedure's GP register. See Chapter 8, The unwind information for __user_sendsig is communicated in the kernel gateway page as described in the discussion of read_tgt_mem above. load_map_from_ip has type definition which is defined in as Parameter new_load_map is a pointer to a pre-allocated struct load_module_desc to be filled in by load_map_from_ip. Parameter ip is any instruction pointer associated with the load module for which information is requested. Parameter ident is transparent to the unwind library itself, and is provided for the use of the unwinder client program. The client program supplies the unwind library with a value for ident (via the call to which the unwind library, in turn, passes along to the load_map_from_ip callback. A debugger, for example, can use ident to identify separate threads within the target process. 3. The semantics of third parameter ident, which is provided for the use of the unwinder client program, is discussed in the read_tgt_mem and load_map_from_ip paragraphs above. Although was designed to fulfill the requirement of unwinding a process other than self, the created can be used by a process to unwind itself as well. Reasons for doing so include the unwinding of dynamically generated code or run-time instrumented code. In these situa- tions, the client may need to register and callbacks. frees memory allocated by or by To avoid memory leaks, an application that allocates an object should call when the is no longer needed. APPLICATION USAGE
and are thread-safe. RETURN VALUE
Pointer to struct ERRORS
and can fail to create the unwind context data structure under the following conditions: o Low memory conditions. The following Unwind library behavior is guaranteed in low memory conditions: A failed construction of a creates for the client program enough of an _Unwind_Context object to support a call to the the stack unwind library entry point which returns in the event of a failed construction or if the pointer is NULL (also an indicator of failed construc- tion). Had the construction been successful, would have returned Failed construction in extremely low memory conditions is communicated by returning NULL in effect setting the pointer to NULL. Subse- quent calls to interface functions of return type return if the pointer is NULL. EXAMPLES
Example 1 Allocate and initialize an for unwinding the currently running process: Example 2 Allocate and initialize an for unwinding a process other than the running process: AUTHOR
and were developed by HP. SEE ALSO
U_STACK_TRACE(3X), _UNW_currentContext(3X), _UNW_getGR(3X), unwind(5). Integrity Systems Only _UNW_createContextForSelf(3X)