I was using our pvaPy for the IOC, and did not use a C++ based IOC, therefore, my IOC did not crash.
Since you have seen the IOC crash, maybe you can give more detailed info there.
Therefore, how about that you create an issue, and add some stack trace details?
From: <firstname.lastname@example.org> on behalf of Marty Kraimer via Core-talk <email@example.com>
Reply-To: Marty Kraimer <firstname.lastname@example.org>
Date: Sunday, March 24, 2019 at 3:36 AM
To: "email@example.com" <firstname.lastname@example.org>
Subject: Re: Get sub field of Union
I just tried using pvget with the PVRrestrictedUnion record from exampleCPP/database.
Just like your example it does work with
mrk> pvget -r value PVRrestrictedUnion
mrk> pvinfo PVRrestrictedUnion
mrk> pvget -r value.string PVRrestrictedUnion
It does not work and actually causes the IOC to crash.
Is it valid to ask for -r value.string?
Perhaps yes with the expectation that you will find out if this is the current type of the value field.
If not you could get valid error message.
Please create a issue in pvDatabaseCPP giving your original message.
On 3/21/19 11:43 AM, Shen, Guobao via Core-talk wrote:
Hi Core member,
Does anyone have experienced to read sub field of a Union structure?
For example, I have a record:
$ pvinfo Test:Data
If I use
$ pvget -r value Test:Data
float [-0.034794,-0.0417011, …]
But if I do it with:
$ pvget -r value.data1 Test:Data
I got an error on my client like
[Test: Data] failed to create channel get: Status [type=FATAL, message=std::bad_alloc]
Is that a right way to use it for union?