<div dir="ltr"><div><span class="gmail-im"></span>> Yes, the problem is, that the profile argument to the AlkOnlineQuoteSource<br>
> ctor is a nullptr. This is then used and the crash happens. The cause to<br>
> this is, that in AlkOnlineQuotesWidget::Private::slotNewEntry() the<br>
> m_profile member is not initialized (nullptr). An assignment happens in<br>
> AlkOnlineQuotesWidget::Private::loadProfiles() and <br>> AlkOnlineQuotesWidget::Private::slotLoadProfile() but the list of profiles<br>
> in your case seems to be empty, and thus no profile is assigned.<br>
<br>
> See MainWindow::MainWindow in onlinequoteseditor.cpp which is part of alkimia<br>
> how to load an initial profile which you should do if the list is empty.<span class="gmail-im"><br><br></span></div><span class="gmail-im">In alkonlinequoteswidget.cpp (loadProfile() and slotLoadProfile())- I added such in case for an empty list, taken from tools/onlinequoteseditor/mainwindow.cpp (I guess you were referring that instead of onlinequoteseditor.cpp)<br>    if (list.isEmpty()){<br>        AlkOnlineQuotesProfileManager &manager = AlkOnlineQuotesProfileManager::instance();<br><br>        manager.addProfile(new AlkOnlineQuotesProfile("no-config-file", AlkOnlineQuotesProfile::Type::None));<br>        #if QT_VERSION < QT_VERSION_CHECK(5,0,0)<br>            manager.addProfile(new AlkOnlineQuotesProfile("alkimia4", AlkOnlineQuotesProfile::Type::Alkimia4, "alkimia-quotes.knsrc"));<br>            manager.addProfile(new AlkOnlineQuotesProfile("skrooge4", AlkOnlineQuotesProfile::Type::Skrooge4, "skrooge-quotes.knsrc"));<br>            manager.addProfile(new AlkOnlineQuotesProfile("kmymoney4", AlkOnlineQuotesProfile::Type::KMyMoney4, "kmymoney-quotes.knsrc"));<br>        #else<br>            manager.addProfile(new AlkOnlineQuotesProfile("alkimia5", AlkOnlineQuotesProfile::Type::Alkimia5, "alkimia-quotes.knsrc"));<br>            manager.addProfile(new AlkOnlineQuotesProfile("skrooge5", AlkOnlineQuotesProfile::Type::Skrooge5, "skrooge-quotes.knsrc"));<br>            manager.addProfile(new AlkOnlineQuotesProfile("kmymoney5", AlkOnlineQuotesProfile::Type::KMyMoney5, "kmymoney-quotes.knsrc"));<br>        #endif<br>        #ifdef ENABLE_FINANCEQUOTE<br>            manager.addProfile(new AlkOnlineQuotesProfile("Finance::Quote", AlkOnlineQuotesProfile::Type::Script));<br>        #endif<br><br>        m_profile->manager();<br>        return;<br>    }</span><div><div><div><span class="gmail-im"><br></span></div><div><span class="gmail-im">Also in order to use my local cloned version of libalkimia in kmymoney rather than the installed one in /usr/ . I just imported that in ksettingskmymoney.cpp as<br>#include </path/to/local/cloned/libalkimia/alkonlinequoteswidget.h> Am I doing this right? Because I am still getting the crash :(<br><br></span></div><div><span class="gmail-im">Regards<br></span></div><div><span class="gmail-im">Suraj Kumar Mahto<br></span></div><div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jun 23, 2021 at 11:11 AM Thomas Baumgart <<a href="mailto:thb@net-bembel.de">thb@net-bembel.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Suraj,<br>
<br>
On Dienstag, 22. Juni 2021 21:45:59 CEST Suraj Kumar Mahto wrote:<br>
<br>
> > Look at the local variables. What is the value of 'this'? Does that make<br>
> sense?<br>
> > It chokes inside the method AlkOnlineQuotesProfile::type() which gets<br>
> called<br>
> > from AlkOnlineQuoteSource ctor in line 230. Which object is pointed to<br>
> when<br>
> > calling type()? Which value does this pointer have? Where is it<br>
> initialized?<br>
> <br>
> After days of bug hunting, I couldn't figure out that. The following things<br>
> I did for the same.<br>
> - I stepped in through functions in debugging and checked the stack.<br>
> - Tried to study the QMap related function defaultQuoteSources() and<br>
> checked its usage.<br>
> - While experimenting with the alkimia lib I found that after executing the<br>
> onlinequoteseditor5 binary separately(in build/bin/) the widget works fine<br>
> and there is no crash while interacting with the UI like buttons and fields<br>
> as opposed to what I saw in the kmymoney.<br>
<br>
Yes, the problem is, that the profile argument to the AlkOnlineQuoteSource<br>
ctor is a nullptr. This is then used and the crash happens. The cause to<br>
this is, that in AlkOnlineQuotesWidget::Private::slotNewEntry() the<br>
m_profile member is not initialized (nullptr). An assignment happens in<br>
AlkOnlineQuotesWidget::Private::loadProfiles() and <br>
AlkOnlineQuotesWidget::Private::slotLoadProfile() but the list of profiles<br>
in your case seems to be empty, and thus no profile is assigned.<br>
<br>
See MainWindow::MainWindow in onlinequoteseditor.cpp which is part of alkimia<br>
how to load an initial profile which you should do if the list is empty.<br>
<br>
> Please direct me what thing I missed. Thanks.<br>
> Sorry for the delay in the blog post. I planned for week 1-2 blog by Monday<br>
> only. I thought that I will post that after solving this bug.<br>
<br>
OK.<br>
<br>
-- <br>
<br>
Regards<br>
<br>
Thomas Baumgart<br>
<br>
<a href="https://www.signal.org/" rel="noreferrer" target="_blank">https://www.signal.org/</a>       Signal, the better WhatsApp<br>
-------------------------------------------------------------<br>
'Knowing a computer language is neither a necessary nor a sufficient<br>
condition to know how to construct a computer program' -- J.R. Tyrer<br>
-------------------------------------------------------------<br>
</blockquote></div>