Sponsored Content
Operating Systems AIX Gdb on a 64 bit executable - cannot access memory Post 302916156 by bagpussnz on Monday 8th of September 2014 12:43:10 AM
Old 09-08-2014
Gdb on a 64 bit executable - cannot access memory

Hi,
Can anyone explain this please.....

A simple test program...

### snip
Code:
#include <stdio.h>

main() {
static int n;

n = 6;

printf("hello %d\n", n);
n=7;
}

### snip

64 bit compile/link....


Code:
$ export OBJECT_MODE=64
$ cc -g -o hello hello.c
$ gdb ./hello
(gdb) b 8
Breakpoint 1 at 0x1000004a4: file hello.c, line 8.
(gdb) r
Starting program: /src/kiwi_7.94_01oct2014/hello 

Breakpoint 1, main () at hello.c:8
8       printf("hello %d\n", n);
(gdb) p n
Cannot access memory at address 0x10000708
(gdb)

If you take off the "static" on line 4, it works fine. Smilie

Also it works fine in 32 bit mode.
Moderator's Comments:
Mod Comment Please use CODE tags when displaying sample input, output, and code segments.

Last edited by Don Cragun; 09-08-2014 at 04:42 PM.. Reason: Add CODE tags.
 

10 More Discussions You Might Find Interesting

1. Programming

Creting 64-bit executable

Hi I am using solaris 8 and I need to create 64-bit executable 'lsof'. what is the cc equivalent option? and how to check whether my compiler supports 64-bit executables or not? Thanks in advance (1 Reply)
Discussion started by: axes
1 Replies

2. UNIX for Dummies Questions & Answers

0403-015 - Cannot access a required executable file. It is in use.

How is this error resolved please? I'm just trying to run a shell script and am getting this error. All file permissions are fine. Thanks (0 Replies)
Discussion started by: miwinter
0 Replies

3. Programming

Cannot access memory at address 0x8

Hi All I have a structure pointer and setting that pointer as NULL. When i tried to access the elements in the structure i am getting the error message. "Cannot access memory at address 0x8". This i tried in LINUX. When the same program is tried thro UNIX (HP-UX), i am not getting the message... (8 Replies)
Discussion started by: rkraj
8 Replies

4. Programming

Access process memory from kernel space

Hi, I'm currently working on a project to help the analysis of malware from inside the kernel to avoid any kind of detection. So I need to be able to read the process memory from my kernel module. As of now, I'm stuck at converting a virtual memory address (for example 0x080483e8 found... (3 Replies)
Discussion started by: anonymoose
3 Replies

5. Programming

gdb: how to debug an executable file with a few command line papameters

If an executalbe file has several parameters, gdb can not pass parameters correctly. Let us see: run: ./executablefile1 agr1 arg2 arg3 debug: gdb executablefile1 run executalbefile1 arg1 arg2 arg3 then argv : executablefile1 argv : executablefile argv : arg1 ... (3 Replies)
Discussion started by: cdbug
3 Replies

6. Programming

gdb: problem while debug an executable file

I created one file (test.cpp)and complied it and get the executable file(test) and run it.It is giving the out put but when I am trying to debug that executable.I am getting the error -- please tell me the solutions?? Thanks in advance ..... (2 Replies)
Discussion started by: smartgupta
2 Replies

7. Ubuntu

Not able to access wi-fi from ubuntu 9.04 -AMD 64-bit.

Hi, I am not able to access wi-fi network from my laptop HP-DV6-1111au. Please suggest how can i load a driver for the device and set the network right!! (3 Replies)
Discussion started by: guru_gyan
3 Replies

8. Linux

Memory issue on My CentOS 5.8 x64 bit server

Hello, I am using CentOS 5.8 x64 server for our one of internal application which is developed on PHP and Mysql as DB. Currently there are 8-10 instances deployed on this server some of them are rarely used. Below is the H/W specification fort the same :- Procesor :- Intel(R) Xeon(R) CPU ... (6 Replies)
Discussion started by: sunnysthakur
6 Replies

9. Filesystems, Disks and Memory

Maximum Memory RAM for windows 7 32 bit

Hi, i have just installed 4 gb RAM ddr3 on OS Windows 7 32 bit. In "manage peripherals" i see this section: Memory installed (ram) : 4,00 gb (2,30gb usable) Why only 2,30 gb usable ? In Windows 7 32bit the maximum size is not 3,00gb ? see file attached, please (4 Replies)
Discussion started by: nash83
4 Replies

10. Programming

64 bit code debugging using gdb and ddd

Hello I have built our application on AIX 7.1 as a 64 bit application. My queries are as follows: Can a 32bit gdb (v7.6) and ddd (data display debugger - v3.3.12), debug a 64bit executable ? If I have a small 64bit a.exe executable that seems to work. If I have a more complicated executable... (4 Replies)
Discussion started by: biju64
4 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 02:34 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy