03-27-2019
My C days are long gone, and assembler even longer, so I don't have any authority to speak up, but to me it seems clear and logical that no strange behaviour e.g. "segmentation fault" comes up with your above code. One reason amongst others for segmentation faults is stack corruption, which may occur if a function is not left (and tidied up) correctly. But, in above example, the two functions have the same parameter / argument structure (none, to be specific), and identical local variable definitions (namely none), so the (quite complex, generated internally by the compiler) return operation includes the same stack tidying up, resulting in test2() 's return statement leaving behind a clean stack although geared up by test1().
What if you specify a large argument list for one of the functions, and define several local variables? Pls try and report back.
Aside: I'm afraid you're slightly off with your hex locations. The first jump takes off from location 0xEBE, and it lands on 0xEE9, right between the two NOPs, which is exactly where the label definition occurred.
Last edited by RudiC; 03-27-2019 at 06:58 PM..
This User Gave Thanks to RudiC For This Post:
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
OUTB(2) Linux Programmer's Manual OUTB(2)
NAME
outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - port I/O
DESCRIPTION
This family of functions is used to do low-level port input and output. The out* functions do port output, the in* functions do port
input; the b-suffix functions are byte-width and the w-suffix functions word-width; the _p-suffix functions pause until the I/O completes.
They are primarily designed for internal kernel use, but can be used from user space.
You compile with -O or -O2 or similar. The functions are defined as inline macros, and will not be substituted in without optimization
enabled, causing unresolved references at link time.
You use ioperm(2) or alternatively iopl(2) to tell the kernel to allow the user space application to access the I/O ports in question.
Failure to do this will cause the application to receive a segmentation fault.
CONFORMING TO
outb() and friends are hardware-specific. The value argument is passed first and the port argument is passed second, which is the opposite
order from most DOS implementations.
SEE ALSO
ioperm(2), iopl(2)
COLOPHON
This page is part of release 3.27 of the Linux man-pages project. A description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
Linux 1995-11-29 OUTB(2)