- Community Home
- >
- Servers and Operating Systems
- >
- Operating System - OpenVMS
- >
- Problem with the Itanium debugger
-
- Forums
-
- Advancing Life & Work
- Advantage EX
- Alliances
- Around the Storage Block
- HPE Ezmeral: Uncut
- OEM Solutions
- Servers & Systems: The Right Compute
- Tech Insights
- The Cloud Experience Everywhere
- HPE Blog, Austria, Germany & Switzerland
- Blog HPE, France
- HPE Blog, Italy
- HPE Blog, Japan
- HPE Blog, Middle East
- HPE Blog, Russia
- HPE Blog, Saudi Arabia
- HPE Blog, South Africa
- HPE Blog, UK & Ireland
-
Blogs
- Advancing Life & Work
- Advantage EX
- Alliances
- Around the Storage Block
- HPE Blog, Latin America
- HPE Blog, Middle East
- HPE Blog, Saudi Arabia
- HPE Blog, South Africa
- HPE Blog, UK & Ireland
- HPE Ezmeral: Uncut
- OEM Solutions
- Servers & Systems: The Right Compute
- Tech Insights
- The Cloud Experience Everywhere
-
Information
- Community
- Welcome
- Getting Started
- FAQ
- Ranking Overview
- Rules of Participation
- Tips and Tricks
- Resources
- Announcements
- Email us
- Feedback
- Information Libraries
- Integrated Systems
- Networking
- Servers
- Storage
- Other HPE Sites
- Support Center
- Aruba Airheads Community
- Enterprise.nxt
- HPE Dev Community
- Cloud28+ Community
- Marketplace
-
Forums
-
Blogs
-
Information
-
English
- 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
- Email to a Friend
- 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
- Email to a Friend
- 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
- Email to a Friend
- 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
- Email to a Friend
- 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
- Email to a Friend
- 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
- Email to a Friend
- 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
- Email to a Friend
- 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
- Email to a Friend
- 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
- Email to a Friend
- 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
- Email to a Friend
- 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.
Hewlett Packard Enterprise International
- Communities
- HPE Blogs and Forum
© Copyright 2021 Hewlett Packard Enterprise Development LP