12-05-2006
If it is on different hardware platforms then it's possible. SIGBUS usually means alignment problems - instead of a pointer being aligned on a page boundary or a longword boundary, it's off by a few bytes. Or, more likely, it references an address that is off.
The reason I suggested corruption (or something is changing the value) is because
the code obviously worked earlier in the code - dlclose is called after you're done.
The pointer "worked" earlier.
I'm guessing you are probably overwriting the stack somewhere earlier in the code.
Now, if you suspect the compilation issue, then compile locally, and do a test run. If problems go away, then you have runtime library differences from box to box that are trashing the pointer.
See the post by driver about tracking down mysterious corruption:
https://www.unix.com/programming/20704-memory-stack-problem.html
9 More Discussions You Might Find Interesting
1. Programming
Anyone knows how to use dynamic module loading through dlopen/dlsym/dlclose properly on FreeBSD?
I wrote a tiny program to learn KDE programming. Perhaps I give you a small snippet to look at
int IPTablesApp::Start(int argc, char* argv) {
typedef void (*init_t)(int, char*);
init_t init;... (0 Replies)
Discussion started by: cbkihong
0 Replies
2. Programming
i just started learning to prog in c++, im using netbeans.
i tryed to make a class and i keep getting this error. what am i doing wrong ?
-----------------------------
class test
{
public:
int funtime();
private:
int time;
};
int test::funtime()... (4 Replies)
Discussion started by: akira300
4 Replies
3. Solaris
Hi,
My system is crashing with following error .. i tried to boot from the network and unencapsulated the root disk from SVM .. but still not able to boot the box , can any one point me to some direction .. i do not want to build the box new as of now just want to troubleshoot if possible..
... (3 Replies)
Discussion started by: fugitive
3 Replies
4. Red Hat
Using Fedora 11, just about every day the system started crashing.
Becomes unresponsive to keyboard/mouse, nothing appears on screen but box is still running.
Still responds to ping, arp address stays alive in the firewall, other than that its unresponsive
Where can I look to find out... (1 Reply)
Discussion started by: ippy98
1 Replies
5. Programming
Hi,
Why I am getting 'SIGSEGV' in the following code?
char* p="abcde";
printf("%s", 3); // Segmentation Fault (core dump)
Kindly help me to understand what exactly makes the program to crash or the reason for the crashing. (7 Replies)
Discussion started by: royalibrahim
7 Replies
6. Web Development
Hi, we have some problem with mysql high cpu , would like some help with MySQL Tuning
here are the mysqltuner & tuning-primer details
mysqltuner:
# mysqltuner
>> MySQLTuner 1.1.1 - Major Hayden <major@mhtx.net>
>> Run with '--help' for additional options and output filtering
--------... (1 Reply)
Discussion started by: cataplexy
1 Replies
7. UNIX and Linux Applications
Firefox keeps on crashing every time I try to run it. I tried to create a new profile with no luck. When I try to open up the profile manager firefox crashes. I even deleted my profile folder and tried to start with a new profile. That did not work either. I don't know what the problem could be. I... (6 Replies)
Discussion started by: cokedude
6 Replies
8. UNIX for Dummies Questions & Answers
Over the last month or so my CentOS server has been crashing for reasons I do not know. It has been running for over a year with regular yum updates without problems. The load on the server is perfectly normal with CPU usage at 5-6% and RAM usage at less than half of 32GB of RAM (multiple smaller... (3 Replies)
Discussion started by: spinner0205
3 Replies
9. Solaris
Hi,
I have Sun Solaris V440, every two days or so, the system crashes and it's at OK prompt. After that I do the FSCK and clear all the bad sectors. Then system stays up for close to 48 hours. Then it crashes again. I checked the logs and I don't see anything under /var/adm/messages file.
... (1 Reply)
Discussion started by: samnyc
1 Replies
LEARN ABOUT FREEBSD
contigfree
CONTIGMALLOC(9) BSD Kernel Developer's Manual CONTIGMALLOC(9)
NAME
contigmalloc, contigfree -- manage contiguous kernel physical memory
SYNOPSIS
#include <sys/types.h>
#include <sys/malloc.h>
void *
contigmalloc(unsigned long size, struct malloc_type *type, int flags, vm_paddr_t low, vm_paddr_t high, unsigned long alignment,
vm_paddr_t boundary);
void
contigfree(void *addr, unsigned long size, struct malloc_type *type);
DESCRIPTION
The contigmalloc() function allocates size bytes of contiguous physical memory that is aligned to alignment bytes, and which does not cross a
boundary of boundary bytes. If successful, the allocation will reside between physical addresses low and high. The returned pointer points
to a wired kernel virtual address range of size bytes allocated from the kernel virtual address (KVA) map.
The flags parameter modifies contigmalloc()'s behaviour as follows:
M_ZERO Causes the allocated physical memory to be zero filled.
M_NOWAIT
Causes contigmalloc() to return NULL if the request cannot be immediately fulfilled due to resource shortage.
Other flags (if present) are ignored.
The contigfree() function deallocates memory allocated by a previous call to contigmalloc().
IMPLEMENTATION NOTES
The contigmalloc() function does not sleep waiting for memory resources to be freed up, but instead actively reclaims pages before giving up.
However, unless M_NOWAIT is specified, it may select a page for reclamation that must first be written to backing storage, causing it to
sleep.
The contigfree() function does not accept NULL as an address input, unlike free(9).
RETURN VALUES
The contigmalloc() function returns a kernel virtual address if allocation succeeds, or NULL otherwise.
EXAMPLES
void *p;
p = contigmalloc(8192, M_DEVBUF, M_ZERO, 0, (1L << 22),
32 * 1024, 1024 * 1024);
Ask for 8192 bytes of zero-filled memory residing between physical address 0 and 4194303 inclusive, aligned to a 32K boundary and not cross-
ing a 1M address boundary.
DIAGNOSTICS
The contigmalloc() function will panic if size is zero, or if alignment or boundary is not a power of two.
SEE ALSO
malloc(9), memguard(9)
BSD
January 29, 2015 BSD