Thread parameter in ANSI C makes a segmentation fault
The creation of thread.
Thread body
These code is so strange, when I run the program more than few hours, then a segmentation fault comes. I also dump the log and use gdb to analyze it, the information is shown below
It anyone give me some suggestions? Is it related to pthread_rwlock?
Are you working on Linux? If so, can you run your program under valgrind supervision?
Thanks. I try it now. However, I can run the program under the text mode only since our system doesn't have a GUI. Is valgrind able to work in text mode?
Try fprintf(stderr, "%p\n", v); to see if the pointer value has become corrupted somehow.
If all you're passing is one integer, why allocate memory at all?
void *value=(void *)42;
int ivalue=(int)(value);
If that's not all you're doing, post a more complete portion of your code so we can see what's actually going on.
Thanks, I will use fprintf to catch the pointer value.
Before I post the problem on the forum, I tried to use
But the problem still happened. At that time, I wrote these codes in another way; it is the reason why I use struct to pass parameters.
I have another idea, is it the problem cause by different compile options?
However, I have 10-20 source files in the project, it is difficult to put all codes in this forum.
Besides, I used outl(...), iopl(...) to control SPI. Are they also affect this threading?
Thanks, I will use fprintf to catch the pointer value.
Before I post the problem on the forum, I tried to use
But the problem still happened.
Then the problem has nothing to do with that line.
Quote:
I have another idea, is it the problem cause by different compile options?
-O3 by itself doesn't cause it to crash. However it can expose latent bugs in your program.
Quote:
Besides, I used outl(...), iopl(...) to control SPI. Are they also affect this threading?
This is an extremely poor design and I can't guarantee anything about it. Given the way modern systems work I can't even guarantee you're actually talking to I/O ports. Is it possible to use an actual device driver instead?
Then the problem has nothing to do with that line. -O3 by itself doesn't cause it to crash. However it can expose latent bugs in your program. This is an extremely poor design and I can't guarantee anything about it. Given the way modern systems work I can't even guarantee you're actually talking to I/O ports. Is it possible to use an actual device driver instead?
So that means using -O3 in multi-threading is a bad idea?
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)
I keep getting this fault on a lot of the codes I write, I'm not exactly sure why so I'd really appreciate it if someone could explain the idea to me.
For example this code
#include <stdio.h>
main()
{
unsigned long a=0;
unsigned long b=0;
int z;
{
printf("Enter two... (2 Replies)
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)
i have this code
int already_there(char *client_names, char *username) {
int i;
for(i = 0; i<NUM; i++) {
printf("HERE\n");
if (strcmp(client_names, username)==0) return(1);
}
return(0);
}
and i get a segmentation fault, whats wrong here? (7 Replies)
This code is causing a segmentation fault and I can't figure out why. I'm new to UNIX and I need to learn how to avoid this segmentation fault thing. Thank you so much. Thanks also for the great answers to my last post.:):b:
int main()
{
mysqlpp::Connection conn(false);
if... (3 Replies)
If I do this.
Assume
struct life
{
char *nolife;
}
struct life **life;
// malloc initialization & everything
if(life->nolife == 0)
Would I get error at life->nolife if it is equal to 0.
wrong accession? (3 Replies)
Hi ,
During execution a backup binary i get following error
"Program error 11 (Segmentation fault), saving core file in '/usr/datatools"
Riyaz (2 Replies)
ive written my code in C for implementation of a simple lexical analyser using singly linked list hence am making use of dynamic allocation,but when run in linux it gives a segmentation fault is it cause of the malloc function that ive made use of????any suggestions as to what i could do???
thank... (8 Replies)
I have written a program which takes a directory as command line arguments and displays all the dir and files in it.
I don't know why I have a problem with the /etc directory.It displays all the directories and files untill it reaches a sub directory called peers which is in /etc/ppp/peers.the... (4 Replies)