- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- Re: Problem with the Itanium debugger
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Forums
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО11-02-2009 09:35 AM
тАО11-02-2009 09:35 AM
Problem with the Itanium debugger
#include
typedef struct
{
int
rec1_field;
} REC1;
typedef struct
{
int
rec2_field;
} REC2;
typedef struct { REC1 *list; } REC1_LIST;
typedef struct { REC2 *list; } REC2_LIST;
int main(int argc, char *argv[])
{
REC1_LIST
rec1_list;
REC1
rec1;
rec1.rec1_field = 1;
rec1_list.list = &rec1;
return 0;
}
On itanium I get this:
OpenVMS I64 Debug64 Version X8.3-015
%DEBUG-I-INITIAL, Language: C, Module: BUG_EXAMPLE
%DEBUG-I-NOTATMAIN, Type GO to reach MAIN program
DBG> 1> SET BREAK %Name"BUG_EXAMPLE"\%LINE 1628
DBG> 1> DEACTIVATE BREAK %Name"BUG_EXAMPLE"\%LINE 1624
DBG> go
break at BUG_EXAMPLE\main\%LINE 1628
DBG> ex *rec1_list.list
*BUG_EXAMPLE\main\rec1_list.list
rec2_field: 1
DBG>
Notice how it says the contents of rec1_list.list is rec2_field. It should be rec1_field.
On alpha, it works:
OpenVMS Alpha Debug64 Version V8.3-014
%DEBUG-I-INITIAL, Language: C, Module: BUG_EXAMPLE
%DEBUG-I-NOTATMAIN, Type GO to reach MAIN program
DBG> 1> SET BREAK %Name"BUG_EXAMPLE"\%LINE 1628
DBG> 1> DEACTIVATE BREAK %Name"BUG_EXAMPLE"\%LINE 1624
DBG> go
break at BUG_EXAMPLE\main\%LINE 1628
DBG> ex *rec1_list.list
*BUG_EXAMPLE\main\rec1_list.list
rec1_field: 1
DBG>
Is this a bug in the itanium debugger?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО11-02-2009 11:01 AM
тАО11-02-2009 11:01 AM
Re: Problem with the Itanium debugger
Please also post your OpenVMS version and your C version and your patch level.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО11-02-2009 11:55 AM
тАО11-02-2009 11:55 AM
Re: Problem with the Itanium debugger
OpenVMS V8.3-1H1
HP C V7.3-018 on OpenVMS IA64 V8.3-1H1
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО11-02-2009 12:07 PM
тАО11-02-2009 12:07 PM
Re: Problem with the Itanium debugger
Could be a bug.
Log a case with HP Customer Support. Send them a minimal reproducer, with exact instructions for demonstrating your symptom (I like to send a self contained command procedure that starts from scratch automates all steps).
Make it clear what you believe to be incorrect, and what you believe the correct result should be. Also include a complete list of versions of all products (a PRODUCT SHOW PRODUCT listing will do).
This could be a compiler issue, a debug issue or a combination of the two. Make sure you've tried it with the latest compiler, and any DEBUG patches relevant to your OS version.
Note that there's a new field test C++ compiler. It might be worth trying your code against it.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО11-02-2009 12:09 PM
тАО11-02-2009 12:09 PM
Re: Problem with the Itanium debugger
I'd next rework the code to remove the typedef struct typedef struct declaration construction, as I suspect that's at the core of this problem.
Time permitting, I'll power up a local Itanium "target practice" box and try this code over there.
And if you have a support contract, escalate this to HP.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО11-02-2009 08:16 PM
тАО11-02-2009 08:16 PM
Re: Problem with the Itanium debugger
This is really strange
I removed all the typedefs and added one more structure still there is a problem.
$ type main.c
#include
struct rec1 {
int rec1_field;
} REC1;
struct rec2 {
int rec2_field;
} REC2;
struct rec3 {
int rec3_field;
} REC3;
struct {
struct rec1 *list;
} REC1_LIST;
struct {
struct rec2 *list;
} REC2_LIST;
struct {
struct rec3 *list;
} REC3_LIST;
int main(int argc, char *argv[])
{
REC1.rec1_field = 1;
REC1_LIST.list = &REC1;
REC2.rec2_field = 2;
REC2_LIST.list = &REC2;
REC3.rec3_field = 3;
REC3_LIST.list = &REC3;
return 0;
}
DBG> ex *REC1_LIST.list
*MAIN\REC1_LIST.list
rec3_field: 1
DBG> ex *REC2_LIST.list
*MAIN\REC2_LIST.list
rec3_field: 2
DBG> ex *REC3_LIST.list
*MAIN\REC3_LIST.list
rec3_field: 3
DBG>
It shows the correct value, but looks like symbolization is wrong.
I think it is a bug.
Regards,
Pramod.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО11-03-2009 06:41 AM
тАО11-03-2009 06:41 AM
Re: Problem with the Itanium debugger
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО11-03-2009 10:33 AM
тАО11-03-2009 10:33 AM
Re: Problem with the Itanium debugger
Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО11-03-2009 12:37 PM
тАО11-03-2009 12:37 PM
Re: Problem with the Itanium debugger
test1 that uses $CC /NOOPT/DEB $LINK /DEB
and test2 that $CC /OPTIMIZE[=option] (D)
This could be more of a code optimizer behavior then a DEBUGGER "issue".
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО11-08-2009 03:37 AM - edited тАО09-18-2011 03:08 PM
тАО11-08-2009 03:37 AM - edited тАО09-18-2011 03:08 PM
Re: Problem with the Integrity debugger
>Is this a bug in the Integrity debugger?
It sure looks like it.
You may want to use C++ coding style, not the scummy C style:
typedef struct foo foo
struct foo {
int f1;
foo *next;
};
foo foo_variable;
Note: Every struct has a tag. Variables are declared separately from the struct. And to satisfy scummy C rules, you have a typedef for the same tag. The typedef can be after if you don't need that self-referential field.
>Pramod: I removed all the typedefs and added one more structure still there is a problem.
You still have some structs without tags.
>Bennett: This could be more of a code optimizer behavior then a DEBUGGER issue.
I doubt it. The optimizer wouldn't change the struct layouts, just cause it to print bad values that have been optimized away.