03-28-2019
Ah, now you're starting to jump between function with different amounts of local variables. Meaning these local variables may not actually be allocated properly when you use them or freed properly when you return, causing corruption on the stack (i.e. important pointer values on the stack overwritten with your local variables since stack space was never made for them), causing potential crashes on return when RET jumps into lala land. This is not recommended.
Also, main() is somewhat special, to the point newer compilers have stopped letting you take the address of it.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
hello all,
I tried a program on an array to intialise array elements from the standard input device.it is an integer array of 5 elements.but after entering the 4th element it throws a message called "Segmentation Fault" and returns to the command prompt without asking for the 5th element.
... (3 Replies)
Discussion started by: compbug
3 Replies
2. AIX
Hello,
I am running on a AIX5.2 server with Oracle 10g and 9i. My code compiles and works fine in 32-bit mode. The
same code compiles in 64-bit and runs good. The program catches CNTRL-C signal to terminate. Only on 64-bit code
when i hit CNTRL-C, the program exits with segmentation... (0 Replies)
Discussion started by: sumesh0710
0 Replies
3. UNIX for Dummies Questions & Answers
The java program is a part of speech tagger -> The Stanford NLP (Natural Language Processing) Group
The goal is to use this script as part of a webpage to tag parts of speech based on a user-inputted string.
I have no idea what to do with the files - I'm a complete *nix noob. I tried running... (4 Replies)
Discussion started by: tguillea
4 Replies
4. Programming
I'm getting a segmentation fault. I'm new to Linux programming. Thanks so much for all of your input.:eek:
#include </usr/include/mysql++/mysql++.h>
#include <stdio.h>
#include <iostream>
#include <sstream>
#include <string.h>
using namespace std;
int outputToImport(const char*... (1 Reply)
Discussion started by: sepoto
1 Replies
5. Programming
Hi Friends,
I have written a small code in C which performs the below operations
Task : 1 ) read line by line from a file.
2 ) assuming 3th and 4th fields of the file as GN and GNTO
3 ) The target file should contain all the fields except GNTO.
4... (3 Replies)
Discussion started by: kiran_bhatter
3 Replies
6. UNIX for Advanced & Expert Users
What does this mean and why is this happening?
$ ps -ef | grep ocular
Segmentation fault (core dumped)
$ ps -ef | grep ocular
Segmentation fault (core dumped)
$ ps aux | grep ocular
Segmentation fault (core dumped)
$ ps
Segmentation fault (core dumped)
$ pkill okular
$ ps... (1 Reply)
Discussion started by: cokedude
1 Replies
7. Programming
I use a binary name (ie polo) it gets some parameter , so for debugging normally i do this :
i wrote script for watchdog my app (polo) and check every second if it's not running then start it , the problem is , if my app , remain in state of segmentation fault for a while (ie 15 ... (6 Replies)
Discussion started by: pooyair
6 Replies
8. Programming
#include<stdlib.h>
#include <pthread.h>
#include "tlpi_hdr.h"
#include <stdio.h>
static volatile int glob = 0;
static struct {
pthread_t t1,t2;
} *thread;
static void * /* Loop 'arg' times incrementing 'glob' */
threadFunc(void *arg)
{
int loops = *((int *) arg); ... (1 Reply)
Discussion started by: fwrlfo
1 Replies
9. Solaris
Hi Guys,
I just installed and booted a zone called testzone. When I logged in remotely and tried changing to root user I get this error:
"Segmentation fault"
Can someone please help me resolve this?
Thanks alot (2 Replies)
Discussion started by: cjashu
2 Replies
10. Programming
Oddities with gcc, 2.95.3 for the AMIGA and 4.2.1 for MY current OSX 10.14.1...
I am creating a basic calculator for the AMIGA ADE *NIX emulator in C as it does not have one.
Below are two very condensed snippets of which I have added the results inside the each code section.
IMPORTANT!... (11 Replies)
Discussion started by: wisecracker
11 Replies
LEARN ABOUT OPENSOLARIS
sigstack
sigstack(3C) Standard C Library Functions sigstack(3C)
NAME
sigstack - set and/or get alternate signal stack context
SYNOPSIS
#include <signal.h>
int sigstack(struct sigstack *ss, struct sigstack *oss);
DESCRIPTION
The sigstack() function allows the calling process to indicate to the system an area of its address space to be used for processing signals
received by the process.
If the ss argument is not a null pointer, it must point to a sigstack structure. The length of the application-supplied stack must be at
least SIGSTKSZ bytes. If the alternate signal stack overflows, the resulting behavior is undefined. (See USAGE below.)
o The value of the ss_onstack member indicates whether the process wants the system to use an alternate signal stack when deliver-
ing signals.
o The value of the ss_sp member indicates the desired location of the alternate signal stack area in the process' address space.
o If the ss argument is a null pointer, the current alternate signal stack context is not changed.
If the oss argument is not a null pointer, it points to a sigstack structure in which the current alternate signal stack context is placed.
The value stored in the ss_onstack member of oss will be non-zero if the process is currently executing on the alternate signal stack. If
the oss argument is a null pointer, the current alternate signal stack context is not returned.
When a signal's action indicates its handler should execute on the alternate signal stack (specified by calling sigaction(2)), sigstack()
checks to see if the process is currently executing on that stack. If the process is not currently executing on the alternate signal
stack, the system arranges a switch to the alternate signal stack for the duration of the signal handler's execution.
After a successful call to one of the exec functions, there are no alternate signal stacks in the new process image.
RETURN VALUES
Upon successful completion, sigstack() returns 0. Otherwise, it returns -1 and sets errno to indicate the error.
ERRORS
The sigstack() function will fail if:
EPERM An attempt was made to modify an active stack.
USAGE
A portable application, when being written or rewritten, should use sigaltstack(2) instead of sigstack().
The direction of stack growth is not indicated in the historical definition of struct sigstack. The only way to portably establish a stack
pointer is for the application to determine stack growth direction, or to allocate a block of storage and set the stack pointer to the mid-
dle. sigstack() may assume that the size of the signal stack is SIGSTKSZ as found in <signal.h>. An application that would like to specify
a signal stack size other than SIGSTKSZ should use sigaltstack(2).
Applications should not use longjmp(3C) to leave a signal handler that is running on a stack established with sigstack(). Doing so may dis-
able future use of the signal stack. For abnormal exit from a signal handler, siglongjmp(3C), setcontext(2), or swapcontext(3C) may be
used. These functions fully support switching from one stack to another.
The sigstack() function requires the application to have knowledge of the underlying system's stack architecture. For this reason, sigalt-
stack(2) is recommended over this function.
SEE ALSO
fork(2), _longjmp(3C), longjmp(3C), setjmp(3C), sigaltstack(2), siglongjmp(3C), sigsetjmp(3C)
SunOS 5.11 28 Feb 1996 sigstack(3C)