Jump to content
OpenSplice DDS Forum
Jonnn

TTopicImpl.hpp Line 175 Bus Error

Recommended Posts

Hello.

 

I am trying to move to Community Edition 6.4  sacpp libraries to 6.7 isocpp2 libraries.

 

I am getting a "bus error" written to the screen, and the application crashes.

 

The call it is failing on is:

dds::topic::qos::TopicQos myTopicQoS(myQoSProvider.topic_qos("a name"))

dss::topic::Topic<M> myTopic(myParticipant, "topic name", myTopicQoS)

 

 

The core dump I have is showing me:

 

#0: org.opensplice::topic::TopicDescriptionDelegate::TopicDescriptionDelegate()

#1: dds::topic::detail::Topic<...>::Topic() as TTTopicImple.hpp:175

#2: dds::topic::Topic<... , ...>Topic() at TTopicImpl.hpp:97 

 

The parameters at #1 are:

name = "topic name"

dp = not null

type_name = ""

qos = not null

listener = null (which is what I'd expect)

mask = not null

 

I haven't made any calls to any form of topic type register, which I was doing in the sacpp - don't know if that's a problem.

If anyone knows what the problem is it would be much appreciated?

Kind Regards,

Jon

 

 

 

Share this post


Link to post
Share on other sites

Hello Jon,

 

Creating a Topic is an implicit type registration. So that isn't needed in isocpp2 anymore.

 

Did you re-generate source code from the idl file that contains type 'M' for isocpp2?

 

Hope this helps.

 

 

ps: often when opensplice fails, it creates a log file called ospl-error.log. There could be some clues in there.

Share this post


Link to post
Share on other sites

Hi Jon

 

Yes, in the isocpp2 API you no longer need to register the type explicitly.  The templated nature of the API allows for the type registration to be done implicitly.

 

In your code:

 

dds::topic::Topic<M> myTopic(myParticipant, "topic name", myTopicQoS)

 

M is the fully scoped name of the structure which will be registered within the call.  i.e. if you have a module it would be mymodule::mystruct etc

 

I wonder if the issue is with the qos provider or not.  To help narrow it down you could try removing the myTopicQoS parameter.  isocpp offers nice overloading where a lot of the parameters are optional.

 

Also check the ospl-info.log and ospl-error.log for clues

 

cheers

James

 

Share this post


Link to post
Share on other sites

Hi

Yes, I've regenrated the IDL and it's fully qualified.

 

I'll try removing the topic QoS and set what happens. I'm in the process of creating a little test application try stuff out, I'll do it in there and then try it in my main app.

Thanks, Jon.

Share this post


Link to post
Share on other sites

The ospl-info has no error or notable statements in it. There isn't an ospl-error log, which I assume means there's no error messages.

If I take the topic qos out, It still give the same error.

Any ideas?

Share this post


Link to post
Share on other sites

Hi.

I've got past the problem. I think it was because I was create everything in the constructor list, and I had errors which I couldn't see.

I followed  the suggestion by Martin in  the thread I created titled "iso library object creation" (I would paste a link in, but it's not letting me) and it started to unstick my problem(s).

 

Anyway,

thanks for the help everyone.

Jon

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×