09-08-2014
GDB problem accessing static variables in C
Hi,
Can anyone explain this please..... This is on AIX with GDB (tried a few versions). It only happens when program compiled in 64 bit and only with static variables....
A simple test program...
### snip
#include <stdio.h>
main() {
static int n;
n = 6;
printf("hello %d\n", n);
n=7;
}
### snip
64 bit compile/link....
$ 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.
Also it works fine in 32 bit mode.
10 More Discussions You Might Find Interesting
1. Programming
Hi
I want to know when and where memory for static variables are allocated in a C program. If it allocates during compilation will memory be allocated for the variable "i" during compilation itself.
int count();
int main(){
printf("%d", count());
return 0;
}
int count()
{
... (8 Replies)
Discussion started by: nathanmca
8 Replies
2. Shell Programming and Scripting
Hi all,
I have a perl script which declares two variables and calls another perl script which accesses those variables. But I am unable to access the variables in the called script. My script is as follows:
my $ENV{a}="20";
system("perl called.pl");
and my called.pl contains:
print... (3 Replies)
Discussion started by: gurukottur
3 Replies
3. Shell Programming and Scripting
hi everybody!
i am running this ksh script for replacing a set of strings by another set of new ones. i am getting both these from a file.
also, the strings that i want to replace, are sub-strings(can occur more than once in each chunk) in a big chunk of data that i have bulk-copied(bcp utility)... (1 Reply)
Discussion started by: trupti wagh
1 Replies
4. HP-UX
Hi,
I don't know if this is HP-UX specific, but I'll take my chances with this forum. ;)
I'm using WDB 5.7 on HP Itanium 11.23.
'file' on my executable shows:
ELF-32 executable object file - IA64
The problem is with viewing the contents of the variables.
Following is a sequence that... (0 Replies)
Discussion started by: rimon
0 Replies
5. Shell Programming and Scripting
I can't figure out how to access variables that are stored in a separate file. Can someone let me in on the secret? Please, and thank you.
-Kevin (7 Replies)
Discussion started by: wayne1411
7 Replies
6. Programming
Hi,
consider the following script.
ip='***.***.**.**'
user='****'
pw='******'
ftpresults=`ftp -nv $ip<<EOF
user $user $pw
cd /home/oracle/practice
size $1
bye
EOF`
fname=$1
echo $ftpresults
sqlplus -s tms/tms@dev45 <<"EOF"
insert into remote_file_sizes (file_name,file_size)... (1 Reply)
Discussion started by: ravi raj kumar
1 Replies
7. Shell Programming and Scripting
Hi,
I have a shell script wherein i am doing some file operations and storing the data in some variables. I am exporting these variables as i need to use them outside shell. Then within the shell i am launching GDB session hoping that i will be able to access the exported variables in the GDB... (2 Replies)
Discussion started by: jsantosh
2 Replies
8. Shell Programming and Scripting
program name--test
#!/bin/bash
output1=`/home/user/a.c`
output2=`/home/user/a.c`
k=`$output1 + 1`
m=`$output2 + 1`
echo $k
echo $m
---------------------------------------------------------------------------
prgram name--a.c
#include<stdio.h>
int main() (1 Reply)
Discussion started by: sameworld1980
1 Replies
9. Shell Programming and Scripting
I have the below code to find yesterdays date, In this I want to make MONTH, DAY and YEAR as global variableand use it outside the {}, but I am unable to do so , please assist:
#!/usr/bin/ksh
date '+%m %d %Y' |
{
read MONTH DAY YEAR
DAY=`expr "$DAY" - $1`
case "$DAY" in
0) ... (1 Reply)
Discussion started by: mohsin.quazi
1 Replies
10. Programming
Are the following equivalent?
static int df, dl, du, count;
static int df;
static int dl;
static int du;
static int count; (7 Replies)
Discussion started by: kristinu
7 Replies
GZEXE(1) General Commands Manual GZEXE(1)
NAME
gzexe - compress executable files in place
SYNOPSIS
gzexe name ...
DESCRIPTION
The gzexe utility allows you to compress executables in place and have them automatically uncompress and execute when you run them (at a
penalty in performance). For example if you execute ``gzexe /usr/bin/gdb'' it will create the following two files:
-rwxr-xr-x 1 root root 1026675 Jun 7 13:53 /usr/bin/gdb
-rwxr-xr-x 1 root root 2304524 May 30 13:02 /usr/bin/gdb~
/usr/bin/gdb~ is the original file and /usr/bin/gdb is the self-uncompressing executable file. You can remove /usr/bin/gdb~ once you are
sure that /usr/bin/gdb works properly.
This utility is most useful on systems with very small disks.
OPTIONS
-d Decompress the given executables instead of compressing them.
SEE ALSO
gzip(1), znew(1), zmore(1), zcmp(1), zforce(1)
CAVEATS
The compressed executable is a shell script. This may create some security holes. In particular, the compressed executable relies on the
PATH environment variable to find gzip and some standard utilities (basename, chmod, ln, mkdir, mktemp, rm, sleep, and tail).
BUGS
gzexe attempts to retain the original file attributes on the compressed executable, but you may have to fix them manually in some cases,
using chmod or chown.
GZEXE(1)