GDB and GCC union


 
Thread Tools Search this Thread
Top Forums Programming GDB and GCC union
# 1  
Old 03-14-2011
GDB and GCC union

My concept may sound a bit cryptic but I what some startup information as to how we can use GDB APIs / debugging techniques in programs with GCC when we compile the program. We can definitely tell gcc to link GDB libs also. The ultimate aid would be that when the compiled programs executes it should produce logs in following format:

filename.cpp:linenumber

Is there any way we can achieve it - I do believe it is cause how would GDB knows these details and I looking for some knowhow’s to begin with.
# 2  
Old 03-14-2011
C99 specifies the follwing macros: __FILE__ __LINE__ __FUNCTION__
Code:
/* define a global macro in a header file */
#define F printf("%s %s %d:\n", __FILE__ , __FUNCTION__, __LINE__);

Using the gdb api is not difficult, but would require a big code change.
You can use sed or awk to add
Code:
F;

in any function for each app; these C macros are specifically meant for the purpose you described. Pick the ones you want, probably __FILE__ __LINE__
# 3  
Old 03-15-2011
Thanks Jim, can you please provide some pointers for using gdb api in cpp programs - I can see more usage and benefits than just using the macros.

Thanks in advance.
# 4  
Old 03-15-2011
If you build your program with -ggdb that'll include extra debugging information gdb can use. I don't know any way to make this debugging information available to the program itself at runtime -- would you want a program that could only be built with gdb, and only built for debugging? Talk about unportable.

Even if you end up using gdb for something else I don't see the harm in using the __FILE__, etc. C macros to do what they were designed to do.
# 5  
Old 03-15-2011
The linux debugger is based on the ptrace system call. Every different unix OS has its own version of ptrace - it may be called something else.

Consider looking at ptrace. Using the api for gdb will be more trouble than benefit.
Look into gprof and gcover as well. Consider that with all of the effort put into gcover, gprof, and gdb -- the people who have developed them over the past 15 years have got a handle on uses and presented them to us.

In other words, corona's assessment is correct - it ain't worth the time and frustration.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Programming

Event driven programming / epoll / typedef union / session data array

Sorry for the “word salad” subject, but I wanted to cast a wide net for help. I've created an IP (Internet Protocol) server which serves HTTP, SMTP, and FTP requests. As you probably know, they all require creating a socket, listening on it, accepting connections, and then having a short... (3 Replies)
Discussion started by: John S.
3 Replies

2. Web Development

Intersection and union of array by hash

Hi, A piece of script from Perl-cookbook I do not understand, and post here for explanation. The purpose is to find the element in either array (union), and in both array (intersection). Thank you in advance. @a=qw(1 3 5 6 7 8); @b=qw(2 3 5 7 9); foreach $e (@a, @b) {$union{$e}++ &&... (3 Replies)
Discussion started by: yifangt
3 Replies

3. Shell Programming and Scripting

awk: union regions

Hi all, I have difficulty to solve the followign problem. mydata: StartPoint EndPoint 22 55 2222 2230 33 66 44 58 222 240 11 25 22 60 33 45 The union of above... (2 Replies)
Discussion started by: phoeberunner
2 Replies

4. Shell Programming and Scripting

Text files union

How can i union two files that each of them contain text to one new file in unix shell scripting or in awk scripting language? (2 Replies)
Discussion started by: tal
2 Replies

5. UNIX for Advanced & Expert Users

Gdb:

Hi, This is a simple question on GDB. Given a core file, how can you check which process has dumped the core? Regards - Krishna (1 Reply)
Discussion started by: krishnamurthig
1 Replies

6. Solaris

Installing gcc - recieve error message gcc : cannot execute

AIM- Install Oracle 11g on Solaris using VMWare Steps 1.Logged on as root 2.Created subfolders à /usr/local/bin & /usr/local/bin/gcc 3.Downloaded gcc & libiconv & unzipped them on my harddrive & burnt them on CD 4.Copied files from CD to /usr/local/bin/gcc 5.Terminal (root) à pkgadd -d... (8 Replies)
Discussion started by: Ackers
8 Replies

7. Shell Programming and Scripting

union of two files

Given two files of the same format (For example number1|text1|number2) what is the command to print lines in file1 which do not occur in file2? diff command seems a bit complicated for me for this purpose. Please help!! Thank you very much. (3 Replies)
Discussion started by: sherkaner
3 Replies

8. Shell Programming and Scripting

How to find union of two files

Is there a command in unix to find the union of two files and removing the union from one of the files? e.g. I have two files input1.txt and input2.txt with the contents below: $ more input1.txt 4 2 3 2 $ more input2.txt 5 4 4 8 2 I want to find the union of the two and... (7 Replies)
Discussion started by: stevefox
7 Replies

9. Programming

Loading Gdb And Gcc In Unix System

Can any one help me out???? I need to install GDB and GCC in an UNIX machine. can any one point me to any lucid pointer to it. The gNU help on this is proving to be little tangential for me. (2 Replies)
Discussion started by: rraajjiibb
2 Replies
Login or Register to Ask a Question