When a process is down - how to get a coredump in arm board?


 
Thread Tools Search this Thread
Top Forums Programming When a process is down - how to get a coredump in arm board?
# 1  
Old 03-01-2010
When a process is down - how to get a coredump in arm board?

Running a multi-threaded program in my arm board one day or more ,The process down .
In order to get a coredump to analysis of the stack , . I use commands ulimited -c unlimited .
but when the process down . no coredump

But I write a test

Code:
#include <stdio.h>
int main(void){
    int m = 0;
    scanf("%d",m);
    return 0;
}

input a number , coredump generated .




why?

Last edited by pludi; 03-02-2010 at 01:54 AM.. Reason: code tags, please...
# 2  
Old 03-02-2010
ulimit -c 100

Quote:
while executing the ulimit command , you need give some value for -c option .
Here -c option value is for saying the approximate size of the dump file
Then you run the segmentation fault object file , it would give you core dumped file
example:
$ ulimit -c 100
$ cc file.c
$ a.out
43
Segmentation fault (core dumped)

Last edited by pavun_cool; 03-02-2010 at 01:59 AM.. Reason: Adding some statements
# 3  
Old 03-02-2010
Quote:
Originally Posted by pavun_cool
example:
$ ulimit -c 100
$ cc file.c
$ a.out
43
Segmentation fault (core dumped)
yes I know the test example I wrote can get a coredump .

The question is why my multi-threaded process can't get a coredump when it down or collapsed Smilie

Thanks !
# 4  
Old 03-03-2010
Possible answers

The user running the app has a ulimit setting to prevent it - environment setting
You linked against an object that blocks SIGSEGV/SIGBUS
You block SIGSEGV/SIGBUS in your code somewhere

I do not know much about ARM. When you execute the image file is there some separate environment in which it runs? To check resource settings:
ex:
Code:
struct rlimit rlp;
if(getrlimit(RLIMIT_CORE, rlp)==0)
    fprintf(stdout, "core dump blocked\n");

I would guess this is the first place to look, and if this is not the case then it pretty much has to be signal blocking somewhere.
# 5  
Old 03-03-2010
Quote:
Originally Posted by jim mcnamara
Possible answers

The user running the app has a ulimit setting to prevent it - environment setting
You linked against an object that blocks SIGSEGV/SIGBUS
You block SIGSEGV/SIGBUS in your code somewhere

I do not know much about ARM. When you execute the image file is there some separate environment in which it runs? To check resource settings:
ex:
Code:
struct rlimit rlp;
if(getrlimit(RLIMIT_CORE, rlp)==0)
    fprintf(stdout, "core dump blocked\n");

I would guess this is the first place to look, and if this is not the case then it pretty much has to be signal blocking somewhere.
Quote:
The user running the app has a ulimit setting to prevent it - environment setting
I use " ulimit -c unlimited ", not" ulimit -c 100 "or something else .

Quote:
You block SIGSEGV/SIGBUS in your code somewhere
I can use functions setjmp, longjmp ,and signal to catch SIGSEGV/SIGBUS and do anything i want .
Even so , I don't know the place generate SIGSEGV/SIGBUS
Code:
struct rlimit rlp;
if(getrlimit(RLIMIT_CORE, rlp)==0)
    fprintf(stdout, "core dump blocked\n");

I use ulimit -a to display the setting , It's right !

/proc/sys/fs $ ulimit -a
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) unlimited
stack(kbytes) 2040
coredump(blocks) unlimited
memory(kbytes) unlimited
locked memory(kbytes) 32
process 768
nofiles 1024
vmemory(kbytes) unlimited
locks unlimited
/proc/sys/fs $

Last edited by aobai; 03-03-2010 at 10:31 PM..
# 6  
Old 03-04-2010
Yes, we know, but something in the program or in a library you use may be modifying those limits as well. Doesn't hurt to double-check.

Are you already catching SIGSEGV then?
# 7  
Old 03-06-2010
Quote:
Originally Posted by aobai
Running a multi-threaded program in my arm board one day or more ,The process down .
In order to get a coredump to analysis of the stack , . I use commands ulimited -c unlimited .
but when the process down . no coredump

But I write a test <snip> input a number , coredump generated .

why?
Perhaps no enough space available on the flash to write the core dump?
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Programming

IDE's for the ARM processor on Linux

Hello everyone. I am running Debian on an ARM7 Device (aka my android phone). Everything is great. Works well. I would love to use it for Development. Mainly my interests are in Web Development, and Java development. So far the only useful IDE for debian arm is Netbeans. Which is pretty... (0 Replies)
Discussion started by: CDevelop
0 Replies

2. Hardware

Xenomai On ARM board EXYNOS 4210 ODROID-PC

Hi I am trying to port xenomai on exynos 4210 arm board. With some research I have found a way to port the board on the exynos board but the problem is that on the exynos-4210 website they have provided a patched version of linux-3.0.15 kernel for implementing on the board. On this kernel I am... (1 Reply)
Discussion started by: mohitjandwani
1 Replies

3. Programming

Running c code in ARM QEMU

I created and Compiled a C program to run in QEMU for ARM. When I run the program using the command #qemu-arm -L /home/arm-2010.09/arm-none-linux-gnueabi/libc ./test it gives me the following error: If 'qemu-arm' is not a typo you can use command-not-found to lookup the package that contains... (0 Replies)
Discussion started by: rupeshkp728
0 Replies

4. UNIX for Dummies Questions & Answers

setserial not working on linux running on Beagleboard (ARM development board)

Hi, I'm trying to develop an application to work with serial infra-red module, but I'm having difficulties to even get my module started. My HW is Beagleboard, which has 1 UART serial port, normally used for console, which I have disabled (I re-created the boot.scr, without the console... (0 Replies)
Discussion started by: julumme
0 Replies

5. UNIX for Advanced & Expert Users

Trace "free(): invalid next size (normal)" error on arm-linux board

Hi guys, i'm running a program on samsumg 6410 arm cpu board. it caused an "free(): invalid next size (normal)" fail. i try to use gdb for remote debugging: 1, start gdb server on board: gdbserver 192.168.1.20:1234 ./HostAP Process ./HostAP created; pid = 499 Listening on port... (8 Replies)
Discussion started by: ss1969
8 Replies

6. Programming

gcc for arm process

hi, correct me if am wrong, as per gcc doc gcc is able to compile code for different target systems such as ARM, ARC etc. I tried for compiling ARM but failed to do so. getting below error: gcc -mcpu=arm920t -c avg.c -o agv_arm `-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead.... (6 Replies)
Discussion started by: zing_foru
6 Replies

7. Fedora

gcc arm compiler

think only compile is required I wish to compile a sample code int main() { int a=5,b=8,c; c=a+b; } compile using gcc -Wall -g -march=arm922t main.c -o hello I got an error :bad value(arm922t) for -march=switch instead of using march i used mcpu options ,the same... (1 Reply)
Discussion started by: sujith4u87
1 Replies

8. UNIX for Advanced & Expert Users

gcc arm compiler

I want to find the ARM assembly language for my sample C code using gcc .I had gcc compiler ,whether it is enough for it or i need to download gcc arm cross compiler.If necessary ,how it configured?I am using fedora (0 Replies)
Discussion started by: sujith4u87
0 Replies

9. Linux

Kernel internals for ARM

Hi, Does anybody have a good pointer on Linux kernel internals for ARM architecture? I can locate plenty for x86 but since ARM is RISC I think there would be subtle changes. So if somebody has a knowledge of good document on Linux Kernel internals for ARM or even a comparative study of kernel on... (0 Replies)
Discussion started by: Rakesh Ranjan
0 Replies
Login or Register to Ask a Question