07-17-2013
Quote:
Originally Posted by
Cambria
So I need some help with this. Pardon me if I'm posting in the wrong forum, after some googling for my answer and finding nothing I found this forum. It seemed appropriate for what I was seeking. I just didnt find a forum that concerned the use of GDB. I'm learning to use the C language and GDB. What I don't understand is how the computer knows how big each piece of a program is in memory, and how I could find my variable's in memory using GDB.
To get nice debugging information like that, you have to build the executable with debugging information(i.e. -ggdb). This embeds lots of offsets and labels inside the program file for gdb's convenience.
This is also why gdb has trouble when it steps into code outside your program, like libc... Libraries are probably
not built with debugging information, so details about their insides will be very limited.
Quote:
I mean if all memory is numbered how can anyone including the CPU know where a word or giant or w/e starts and ends?
To put it bluntly -- it doesn't. They all become hardcoded segment offsets, in the end. Without debugging information, you're left with detective work.
Quote:
If I wanted to find my variable in memory after setting a break point in it and accessing the $esp register how would I know where my variables began and ended?
If your executable wasn't built with debugging info, that'd mean detective work.
Last edited by Corona688; 07-17-2013 at 05:38 PM..
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
Hi,
Wish if could provide some clues.
How do I dump all the C program variables(global) into say a file with their names and the values. So that when I restart the application again I could use this same file for reinitializing.Is this possible?
Thanks,
Reji (1 Reply)
Discussion started by: rejise
1 Replies
2. Programming
Is there a way to find the address of stack memory writing a program? Please guide me (12 Replies)
Discussion started by: jacques83
12 Replies
3. Solaris
hey everybody,
i am currently working on solaris 10 os on a m5000 server. my problem is when i want the exact size of a program in execution, i am unable to do it. earlier i thought the RSS field of prstat but because of its large size it cant be the size. pmap -x shows some output but it includes... (2 Replies)
Discussion started by: aryansheikh
2 Replies
4. Shell Programming and Scripting
Hello everyone,
I am trying to figure out where all of my environment variables are getting set.
When I type env I get a whole list of them, about two pages full, yet I do not seem to find where they are initialized.
I checked all of my .profile .login and .cshrc files (I do not seem to have any... (1 Reply)
Discussion started by: gio001
1 Replies
5. UNIX for Dummies Questions & Answers
Hello Geniuses of the unix world. please help, stupid chemist. I have the following script that I need to create a file. Doesnt make sense unless i explain this way: I need to create a file called summary.in I would like all these lines to be inserted however in the command line I would like the... (1 Reply)
Discussion started by: gingburg
1 Replies
6. UNIX for Dummies Questions & Answers
Hello all,
one of application on system requires that "uname" program is in "/usr/uname" location. I can find uname in "/usr/bin/uname" location. Is it possible to present the /usr/bin/uname as that it was located in /usr/uname location?
Thank you in advanced,
M (1 Reply)
Discussion started by: kreno
1 Replies
7. UNIX for Dummies Questions & Answers
this method is not working.I am having a problem to use variables in system command. i cannot use the variables in system command.
this how i was did
system("whereis command");
this method works very fine. but, i want use the commands as variable.
that means i want only pass the variables.... (6 Replies)
Discussion started by: dhanda2601
6 Replies
8. UNIX for Dummies Questions & Answers
so i was testing something on a test box running linux. i manually vi'ed the /var/log/messages file. and i noticed, the file immediately stopped being updated.
it wasn't until i restarted the syslog process that events started being recorded in it again.
so that tells me, the syslog process... (20 Replies)
Discussion started by: SkySmart
20 Replies
9. Programming
Hello,
Here is a portion of my code:
a=(int *) malloc(dim*dim*sizeof(int));
b=(int *) malloc(dim*dim*sizeof(int));
c=(int *) malloc(dim*dim*sizeof(int));
for(i=0;i<dim;i++)
for(j=0;j<dim;j++)
c= rand();
for(i=0;i<dim;i++)
for(j=0;j<dim;j++)
b=rand();
... (6 Replies)
Discussion started by: chercheur111
6 Replies
10. Shell Programming and Scripting
This question could be specific to the site subdivx.com In the past, I've been able to download a file following location using cURL but there is something about subdivx.com that's different and can't figure out how to get it to work.
I tried the following directly in the terminal with no... (5 Replies)
Discussion started by: MoonD
5 Replies
LEARN ABOUT DEBIAN
btraceback
BTRACEBACK(1) Network backup, recovery and verification BTRACEBACK(1)
NAME
btraceback - wrapper script around gdb and bsmtp
SYNOPSIS
btraceback /path/to/binary pid
DESCRIPTION
btraceback is a wrapper shell script around the gdb debugger (or dbx on Solaris systems) and bsmtp, provided for debugging purposes.
USAGE
btraceback is called by the exception handlers of the Bacula daemons during a crash. It can also be called interactively to view the cur-
rent state of the threads belonging to a process, but this is not recommended unless you are trying to debug a problem (see below).
NOTES
In order to work properly, debugging symbols must be available to the debugger on the system, and gdb, or dbx (on Solaris systems) must be
available in the $PATH.
If the Director or Storage daemon runs under a non-root uid, you will probably need to be modify the btraceback script to elevate privi-
leges for the call to gdb/dbx, to ensure it has the proper permissions to debug when called by the daemon.
Although Bacula's use of btraceback within its exception handlers is always safe, manual or interactive use of btraceback is subject to the
same risks than live debugging of any program, which means it could cause Bacula to crash under rare and abnormal circumstances. Conse-
quently we do not recommend manual use of btraceback in production environments unless it is required for debugging a problem.
ENVIRONMENT
btracback relies on $PATH to find the debugger.
FILES
/usr/lib/bacula/btraceback
The script itself.
/usr/sbin/btraceback
symbolic link to /usr/lib/bacula/btraceback
/etc/bacula/scripts/btraceback.gdb
the GDB command batch used to output a stack trace
AUTHOR
This manual page was written by Lucas B. Cohen <lbc@members.fsf.org>
SEE ALSO
bsmtp(1)
Kern Sibbald 6 December 2009 BTRACEBACK(1)