Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Using gdb to detect segmentation fault in sh? Post 302932591 by DGPickett on Thursday 22nd of January 2015 04:07:41 PM
Old 01-22-2015
Well, 'core' is a real file, somewhere, and it has to be produced (by allowing configuration) and properly pathed for gdb to open it. The dying process puts it in $PWD/core. Once gdb is up, 'where' will get you down to a subroutine. Of course, you need source and it helps if the compile options and lack of stripping make the crashing object easy to debug. Sometiems fate is cruel, and it only bombs if you compile it without symbols! There is also running it under truss/tusc/strace to get some idea of what calls preceded the crash.
 

10 More Discussions You Might Find Interesting

1. Programming

Why not a segmentation fault??

Hi, Why I don't receive a segmentation fault in the following sample. int main(void) { char buff; sprintf(buff,"Hello world"); printf("%s\n",buff); } If I define a buffer of 10 elements and I'm trying to put inside it twelve elements, Should I receive a sigsev... (22 Replies)
Discussion started by: lagigliaivan
22 Replies

2. UNIX for Dummies Questions & Answers

Segmentation Fault

Hi, While comparing primary key data of two tables thr bteq script I am getting this Error. This script is a shell script. *** Error: The following error was encountered on the output file. Script.sh: 3043492 Segmentation fault(coredump) Please let me know how to get through it. ... (5 Replies)
Discussion started by: monika
5 Replies

3. Programming

segmentation fault

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)
Discussion started by: joey
3 Replies

4. Programming

segmentation fault

What is segmentation fault(core dumped) (1 Reply)
Discussion started by: gokult
1 Replies

5. Programming

Segmentation fault.

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

6. Programming

segmentation fault.

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)
Discussion started by: sepoto
3 Replies

7. Programming

Segmentation fault in C

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)
Discussion started by: omega666
7 Replies

8. Programming

Segmentation fault gdb

Hello everyone, I am using the debugger from C++ and these are the message I got: Program received signal SIGSEGV, Segmentation fault. 0x0040cc0e in malloc_consolidate (av=0x4ff3c0) at malloc.c:5169 in malloc.c I don't know if the problem is cause i'm trying to acess an invalid memory... (1 Reply)
Discussion started by: juliecf5
1 Replies

9. Programming

Using gdb, ignore beginning segmentation fault until reproduce environment segmentation fault

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

10. Programming

C. To segmentation fault or not to segmentation fault, that is the question.

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
NJAMDPM(1)						      General Commands Manual							NJAMDPM(1)

NAME
njamdpm - Not Just Another Malloc Debugger Post-Mortem SYNOPSIS
njamdpm [OPTIONS] <HEAP FILE> DESCRIPTION
njamdpm is a companion utility that allows you to examine the persistent heap saved by libnjamd(3) You can do things like query for certain addresses, show memory leaks, and show all past allocated memory. As of NJAMD 0.6.0, gdb(1) is required to make sense of the return addresses. USAGE
Options HEAP FILE The heap file will be in the current directory with a name of the form njamd-<pid>-heap, but only if NJAMD_PERSISTANT_HEAP was in the environment at the time of program execution -a address Search through the heap file for a chunk of memory that contains address. This can be VERY helpful when using gdb. Simply find the address that you accessed to cause the segmentation fault, use njamdpm to look it up in the heap, and viola! You have all sorts of info about the chunk: When it was allocated, when it was freed, how big is is, etc. -d depth When displaying return address info, only display depth return addresses. The max is specified in ./include/lib/njamd.h in the define TRACE_DEPTH (default is 3). -t Trim the heap file down to only the used portion. This is useful if for some reason the program somehow exits without trimming its own heap file down first. Note that when the heap file appears huge it's not actually taking up disk space. -s Dump basic status info about peak memory usage, NJAMD overhead, etc. Useful for determining if you should buy more ram, or write me an angry email :) -l Dump memory leaks in the heap. Also shows you info about where the memory was leaked, along with a total. Do note that this total and the subtotals are aligned bytes. They are aligned to the alignment of your architecture, or as specified by the value the NJAMD_ALIGN environment variable had when the heap was created. -f Dump freed memory in the heap. This option is only available if LIBNJAMD ran without NJAMD_CHK_FREE=none set. Using gdb with njamdpm When a segmentation fault happens, it's because, of course, you accessed an invalid address. So all you need to do is get gdb to give you the address you accessed, and then feed it to njamdpm. Ie if the segfault occurs on a line that does buf[i] = 2, issue print &buf[i] to gdb. Note that libnjamd(3) now has a function __nj_ptr_info that can be called from gdb that performs all this without njamdpm. To get gdb to translate these return addresses into something meaningful, issue info line *0xaddress to obtain the line number of the allocation request, or list *0xaddress to see the adjacent code as well. NOTES
Eventually I hope to add symbol translation right into njamdpm. AUTHORS
Mike Perry <mikepery@fscked.org> SEE ALSO
http://freshmeat.net/appindex/development/debugging.html njamd(3), efence(3), malloc(3), mmap(2), mprotect(2) NJAMD - 5 Oct 2000 NJAMDPM(1)
All times are GMT -4. The time now is 03:46 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy