Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* RE: MACROS in gdb ???
@ 2001-03-21 15:59 Aditya Chugh
  2001-03-21 15:59 ` Daniel Berlin
                   ` (2 more replies)
  0 siblings, 3 replies; 112+ messages in thread
From: Aditya Chugh @ 2001-03-21 15:59 UTC (permalink / raw)
  To: jtc; +Cc: bug-gdb, gdb

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2608 bytes --]

Title: RE: MACROS in gdb ???





Hello Jtc,
Many thanks for your help.
The target I'm using is a Linux machine 
running kernel version 2.2.16-22(Red Hat Linux release 7.0)
and the version of gdb is 5.0.


Also the gdb output looked like this....?
(gdb) p u2IncarnId
$2 = 0
(gdb) n
(gdb) p u2IncarnId
$3 = 1
(gdb) p &u2IncarnId
Address requested for identifier "u2IncarnId" which is in a register.
(gdb)


I found that one of the Makefiles I was using has
CCFLAGS  = -O2 -Wall.After removing the -O2 the problem seems to have been resolved.


But does this mean that if we complile using GNU CC with both `-g'  and `-O' options
GDB will give us wrong results ?? Moreover the same code when run in Visual Studio 6.0
prints correct values for u2IncarnId.Does this mean that the debugger in Visual Studio 6.0
is better than GDB for optimized code ? It comes as quite a sock to me ?
Any more thoughts ???
with sincere thanks,
Aditya




-----Original Message-----
From: jtc@redback.com [ mailto:jtc@redback.com ]
Sent: Tuesday, March 20, 2001 4:12 AM
To: Aditya Chugh
Cc: bug-gdb@prep.ai.mit.edu; gdb@sourceware.cygnus.com
Subject: Re: MACROS in gdb ???




>>>>> "Aditya" == Aditya Chugh <Aditya@in.huawei.com> writes:
Aditya> I am not sure this is the right forum for a question on gdb.


I have culled the 'cc' list to the most relevant mailing lists.


Aditya> I am a Newbie as far as gdb is concerned.  But I have been
Aditya> struggling with this for quite some time and would sincerely
Aditya> appreciate any help.


Aditya> But after processing this macro the value of u2IncarnId
Aditya> changes unexplicably ????


You don't mention what target you're using or what optimization level
was used when you compiled the files.  But the symptoms you describe
often occur when debugging optimized code.  


For example if a register is being used to hold a value and then that
value is no longer needed in the rest of the function, a compiler may
choose to use that register for an unrelated value.  This can make
debugging a bit of a challenge, but looking at a disassembly of the
function or recompiling the system with no optimization can be used to
help diagnose the problem.


It helps to have a somewhat "flexible" attitude when it comes to
debugging optimized code.  A rigid interpretation of results will
lead to frustration.


Aditya> If I am missing something obvious please forgive me. I have
Aditya> spent the whole day trying to figure out where I am going
Aditya> wrong.


I hope this helps.  


        --jtc


-- 
J.T. Conklin
RedBack Networks





^ permalink raw reply	[flat|nested] 112+ messages in thread
* MACROS in gdb ???
@ 2001-03-21 15:59 Aditya Chugh
  2001-03-21 15:59 ` J.T. Conklin
  0 siblings, 1 reply; 112+ messages in thread
From: Aditya Chugh @ 2001-03-21 15:59 UTC (permalink / raw)
  To: bug-gdb, gdb, ac131313, ischis2, fnasser@ redhat.com, jtc, alan, cpg
  Cc: bug-gdb-request

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1704 bytes --]

Title: MACROS in gdb ???





Hello ,
I am not sure this is the right forum for a question on gdb.I am a Newbie as far as gdb is concerned.
But I have been struggling with this for quite some time and would sincerely appreciate any help.


I am trying to use gdb for a C program which makes heavy
use of C macros. 


The function ldpCreateIncarn() is called with parameter u2IncarnId set to 0.


UINT1 ldpCreateIncarn (UINT2 u2IncarnId)
{
   UINT1 u1HoldPrio;


   LDP_ASSERT(u2IncarnId == LDP_CUR_INCARN);
   if ( LDP_INCARN_STATUS(u2IncarnId) == ACTIVE )  
   {
       return LDP_FAILURE;
   }


   gblTmrMemChkId = 1;
   gblSNMPMemChkId = 1;
.
.
.
}


After call to LDP_INCARN_STATUS(u2IncarnId) the value of 
u2IncarnId MYSTERIOUSLY changes to 1.LDP_INCARN_STATUS is a macro defined as follows


#define LDP_INCARN_STATUS(x) (gLdpInfo.LdpIncarn[(x)].IncarnRowStatus)


...it only reads the status from a global data-stucture and checks to see if it is ACTIVE. It does not change the value of "x" in any way.

But after processing this macro the value of u2IncarnId changes unexplicably ????



Also in this function I have some other Macros like


INIT_LBL_MGR_INFO(u2IncarnId)
which are defined as
#define INIT_LBL_MGR_INFO(x) gLdpInfo.LdpIncarn[(x)].LdpLblMgrInfo.u4NumGrpsActive = LDP_ZERO;


At the time of entering such macros u2IncarnId is set to 0 but after processing the macro its value cahnges to 168 !!


(gdb) p u2IncarnId
$19 = 0
(gdb) n
(gdb) p u2IncarnId
$20 = 168


If I am missing something obvious please forgive me. I have spent the whole day trying to figure out where
I am going wrong.
Thanks in Advance,
Aditya





^ permalink raw reply	[flat|nested] 112+ messages in thread
[parent not found: <200105010009.RAA12115@tully.CS.Berkeley.EDU>]

end of thread, other threads:[~2001-05-10  8:53 UTC | newest]

Thread overview: 112+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-03-21 15:59 MACROS in gdb ??? Aditya Chugh
2001-03-21 15:59 ` Daniel Berlin
2001-03-21 15:59 ` Eli Zaretskii
     [not found]   ` <eliz@is.elta.co.il>
2001-03-21 15:59     ` Kevin Buettner
2001-03-21 15:59       ` Eli Zaretskii
2001-03-21 15:59 ` J.T. Conklin
2001-03-21 15:59 Aditya Chugh
2001-03-21 15:59 ` J.T. Conklin
     [not found] <200105010009.RAA12115@tully.CS.Berkeley.EDU>
2001-05-03  1:24 ` [Mingw-users] Re: _WIN32? Paul Hilfinger
2001-05-03 13:41   ` Andrew Cagney
2001-05-03 14:15     ` Danny Smith
2001-05-03 15:24       ` Andrew Cagney
2001-05-03 15:54         ` Christopher Faylor
2001-05-03 16:11           ` Andrew Cagney
2001-05-04  2:17             ` Eli Zaretskii
2001-05-04  2:19         ` Eli Zaretskii
2001-05-04  8:45           ` Christopher Faylor
2001-05-04 10:18             ` Eli Zaretskii
2001-05-04 12:04               ` Christopher Faylor
2001-05-07  9:08         ` Eli Zaretskii
2001-05-08  4:38           ` DOS/Windows-specific code (was: _WIN32?) Eli Zaretskii
2001-05-08  4:40           ` DOS/Windows-specific code: cli-cmds.c Eli Zaretskii
2001-05-08  5:07             ` Registers are not available in Cygwin leonp
2001-05-08  7:16             ` DOS/Windows-specific code: cli-cmds.c Christopher Faylor
2001-05-08 17:51               ` Andrew Cagney
2001-05-08 17:53                 ` Christopher Faylor
2001-05-09  3:02                 ` Eli Zaretskii
2001-05-10  8:33                   ` Andrew Cagney
2001-05-08 17:56             ` Andrew Cagney
2001-05-09  3:03               ` Eli Zaretskii
2001-05-09  9:10                 ` Andrew Cagney
2001-05-08  4:42           ` DOS/Windows-specific code: exec.c and symfile.c Eli Zaretskii
2001-05-08  7:43             ` Elena Zannoni
2001-05-08 17:58             ` Andrew Cagney
2001-05-09  3:03               ` Eli Zaretskii
2001-05-09  7:07                 ` Christopher Faylor
2001-05-08  4:43           ` DOS/Windows-specific code: inflow.c Eli Zaretskii
2001-05-08  7:54             ` Christopher Faylor
2001-05-08 11:15               ` Eli Zaretskii
2001-05-09 13:10                 ` Christopher Faylor
2001-05-08  4:46           ` DOS/Windows-specific code: main.c Eli Zaretskii
2001-05-08  7:58             ` Christopher Faylor
2001-05-08  8:17               ` Keith Seitz
2001-05-08  8:19                 ` Christopher Faylor
2001-05-08  4:46           ` DOS/Windows-specific code: maint.c Eli Zaretskii
2001-05-08 23:40             ` Kevin Buettner
2001-05-09  3:22               ` Eli Zaretskii
2001-05-10  8:33             ` Andrew Cagney
2001-05-10  8:53               ` Eli Zaretskii
2001-05-08  4:47           ` DOS/Windows-specific code: source.c Eli Zaretskii
2001-05-08  9:30             ` DJ Delorie
2001-05-08 11:18               ` Christopher Faylor
2001-05-08 12:23                 ` Eli Zaretskii
2001-05-08 14:00                   ` DJ Delorie
2001-05-09  3:05                     ` Eli Zaretskii
2001-05-09  7:08                       ` Christopher Faylor
2001-05-08 11:14             ` Christopher Faylor
2001-05-08 12:25               ` Eli Zaretskii
2001-05-08 12:33                 ` Christopher Faylor
2001-05-09  3:05                   ` Eli Zaretskii
2001-05-08  4:48           ` DOS/Windows-specific code: sparcl-tdep.c Eli Zaretskii
2001-05-08 23:47             ` Kevin Buettner
2001-05-09  3:14               ` Eli Zaretskii
2001-05-10  8:33               ` Andrew Cagney
2001-05-08  4:48           ` DOS/Windows-specific code: terminal.h Eli Zaretskii
2001-05-08 11:18             ` Christopher Faylor
2001-05-08  4:50           ` DOS/Windows-specific code: top.c Eli Zaretskii
2001-05-08  7:46             ` Elena Zannoni
2001-05-08  4:51           ` DOS/Windows-specific code: utils.c Eli Zaretskii
2001-05-08 11:26             ` Christopher Faylor
2001-05-08  4:52           ` DOS/Windows-specific code: ser-tcp.c Eli Zaretskii
2001-05-08  5:56             ` Russ Allbery
2001-05-08  6:01             ` Christopher Faylor
2001-05-08  8:09               ` Eli Zaretskii
2001-05-08  8:20                 ` Christopher Faylor
2001-05-08 10:30                   ` Eli Zaretskii
2001-05-08 11:03                     ` Christopher Faylor
2001-05-08 23:53             ` Kevin Buettner
2001-05-09  6:59               ` DOS/Windows-specific code: ser-tcp.c [need ruling from Andrew] Christopher Faylor
2001-05-09  9:29                 ` Andrew Cagney
2001-05-08  4:52           ` DOS/Windows-specific code: sh-tdep.c and sh3-rom.c Eli Zaretskii
2001-05-08  7:49             ` Elena Zannoni
2001-05-08 11:17               ` Eli Zaretskii
2001-05-08 11:40                 ` Elena Zannoni
2001-05-08 12:36                   ` Christopher Faylor
2001-05-08 12:35               ` Christopher Faylor
2001-05-08 18:17                 ` Andrew Cagney
2001-05-08 19:35                   ` Christopher Faylor
2001-05-08 23:55             ` Kevin Buettner
2001-05-09  3:20               ` Eli Zaretskii
2001-05-09  7:49                 ` Elena Zannoni
2001-05-08  4:53           ` DOS/Windows-specific code: values.c Eli Zaretskii
2001-05-08 23:58             ` Kevin Buettner
2001-05-09  7:01               ` Christopher Faylor
2001-05-10  8:33               ` Andrew Cagney
2001-05-08  4:54           ` DOS/Windows-specific code in sim/ Eli Zaretskii
2001-05-08  9:30             ` DJ Delorie
2001-05-08 11:04               ` Eli Zaretskii
2001-05-10  8:33               ` Andrew Cagney
2001-05-08  4:55           ` DOS/Windows-specific code: all the rest Eli Zaretskii
2001-05-08  5:12             ` leonp
2001-05-08  7:59               ` Christopher Faylor
2001-05-08  9:45             ` DJ Delorie
2001-05-08 10:53               ` Eli Zaretskii
2001-05-08 12:08                 ` DJ Delorie
2001-05-07  9:09         ` [RFA] Remove OS-specific defines (was: _WIN32?) Eli Zaretskii
2001-05-07 10:39           ` Kevin Buettner
2001-05-07 11:23             ` Eli Zaretskii
2001-05-07 11:37               ` Andrew Cagney
2001-05-03 23:58     ` [Mingw-users] Re: _WIN32? Paul Hilfinger
2001-05-04  9:04       ` Andrew Cagney
2001-05-04  0:20     ` Eli Zaretskii

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox