summaryrefslogtreecommitdiff
path: root/solenv/gdb/libreoffice
AgeCommit message (Collapse)Author
2022-02-09gdb: fix SwXTextCursorPrinterMichael Stahl
m_pImpl was removed in commit cb0991e32987108d900ec7e8fcd4ce477ebc9fb4 Change-Id: I9ca0cdbca97242ace5243f140ac2e17055b3f718 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129685 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-12-03gdb: BigPtrArrayPrinter gets confused by libstdc++ std::unique_ptrMichael Stahl
It looks like this in libstdc++: <BigPtrArray> = { m_ppInf = { _M_t = { <std::__uniq_ptr_impl<BlockInfo*, std::default_delete<BlockInfo* []> >> = { _M_t = { <std::_Tuple_impl<0, BlockInfo**, std::default_delete<BlockInfo* []> >> = { <std::_Tuple_impl<1, std::default_delete<BlockInfo* []> >> = { <std::_Head_base<1, std::default_delete<BlockInfo* []>, true>> = { _M_head_impl = {<No data fields>} }, <No data fields>}, <std::_Head_base<0, BlockInfo**, false>> = { _M_head_impl = 0x567fd20 }, <No data fields>}, <No data fields>} }, <No data fields>} }, Note there are 2 _M_head_impl members, and somehow gdb 11.1-2.fc34 picks the wrong one. A manual cast to std::_Head_base<0, BlockInfo**, false> seems to help. Change-Id: I1332c2fc6eb2661d417fd92a73aed977bbb1dcea Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126220 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2021-09-20introduce SfxItemSetFixed and use it in DefaultPropertiesNoel Grandin
DefaultProperties::SetObjectItemSet is very hot when loading shapes, and a large chunk of that cost is allocating the pool item array. So use a template class to allocate the array in-line to the class, which means it can be allocated on-stack. Change-Id: Ic53b41f35784726362de38fceb35f8634cddf0a4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122310 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-05Pass context and resource string down to boost::locale separatelyNoel Grandin
because this is often on a hot path, and we can avoid the splitting and joining of strings like this. Change-Id: Ia36047209368ca53431178c2e8723a18cfe8260a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119220 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-15WhichRangesContainer, reduce malloc in SfxItemSetNoel Grandin
SfxItemSet shows up in perf profiles frequently, and the hottest part is the malloc of the two arrays we need. But most of the time, one of those arrays is a compile-time constant. So this change introduces (*) WhichRangesContainer, which manages whether the SfxItemSet owns the array it points at or not. (*) a static const member in svl::Items (idea from mkaganski) to store the data. Change-Id: Icb8cdbc4d54fd76739565c575e16a744515e5355 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118703 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-01GDB vcl.py: actually return a string in to_stringJan-Marek Glogowski
... and hopefully make it python2.7 compatible... definitly a "brown paperbag" fix... well it did work locally ;-) I just noticed, because Jenkins spilled some errors from GDB on hang with: Traceback (most recent call last): File "/.../instdir/program/libvcllo.so-gdb.py", line 23, in <module> module = importlib.import_module('libreoffice.' + mod) File "/.../python2.7/importlib/__init__.py", line 37, in import_module __import__(name) File "/.../solenv/gdb/libreoffice/vcl.py", line 101 print('STACK', end =", ") Change-Id: I500e8fea07e9865235e37673dee6374108fefbf2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118237 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-06-29Extend and fix Scheduler GDB printerJan-Marek Glogowski
Adds a pretty printer for the whole Scheduler context and fixes an off-by-one error when dumping the ImplSchedulerData singly-linked list. Change-Id: I94129fc164986b379f33854651ff6df766eff97f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118075 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-04-29rename A field in ::Color to TNoel Grandin
because it's actually transparency, not alpha, and having proper naming helps my limited brain keep track of stuff better when debugging And have both the stream operator and the debugging printer print out alpha values, for consistency. Change-Id: I9bc9ffcb71d554603591935e4043a3fb14646ebd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114886 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-10-09Adapt solenv/gdb/ to old PythonStephan Bergmann
After 4a899a5f8a72ea29a6919316afe3627de9f33e95 "Fix Python deprecation warnings"e.g. <https://ci.libreoffice.org/job/gerrit_linux_clang_dbgutil/70542/console> started to complain > Traceback (most recent call last): > File "/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/instdir/program/libuno_sal.so.3-gdb.py", line 23, in <module> > module = importlib.import_module('libreoffice.' + mod) > File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module > __import__(name) > File "/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/solenv/gdb/libreoffice/sal.py", line 14, in <module> > from libreoffice.util import printing > File "/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/solenv/gdb/libreoffice/util/printing.py", line 10, in <module> > from collections.abc import Mapping > ImportError: No module named abc etc. when lode's bin/kill-wrapper calls gdb to obtain backtraces of hung processes. Change-Id: I4fe6c6fa97bbb455a071dd28e5c1ab33f2337a0f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104119 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-09-24Fix Python deprecation warningsStephan Bergmann
I noticed these "DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.9 it will stop working" now when running tests with CPPUNITTRACE='gdb --args' on Fedora 32. Change-Id: If263dacb9df5c1fffd2be2418e13e69b96070c77 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103294 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-09-12Replace remaining uses of sal_CharJulien Nabet
+ remove sal_Char check on compilerplugins Change-Id: I0f7da14e620f0c3d031d038aa8345ba4080fb3e9 Change-Id: Ia6dba4f27b47bc9e0c89159182ad80a5aee17166 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102499 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-07-13Don't rely on Python's treatment of unrecognized escape sequencesMike Kaganski
According to [1]: > Changed in version 3.6: Unrecognized escape sequences produce a DeprecationWarning. > In a future Python version they will be a SyntaxWarning and eventually a SyntaxError. [1] https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals Change-Id: Ia4f79f17ccb121f423f35b1e1306d5ae285e8762 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98321 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-06-25remove Fraction pretty-printerNoel Grandin
no longer necessary after commit 31589bf0239679d73417902655045c48c4868016 Date: Mon Jun 24 15:02:55 2019 +0200 tdf#94677 Calc is slow opening large CSV, improve tools::Fraction Change-Id: I1c9ee043a51216f7005bf8a4bf60bb4b4e39ab61
2019-04-21fix gdb helper for ColorNoel Grandin
after commit d487d6e082bc7ce652217578ffd37397a59cc3ca Date: Sat Apr 20 11:06:11 2019 +0900 rework Color to have R,G,B,A public variables Change-Id: I0ebbb071d2fad43bd49ef8421804657dfdfc446d Reviewed-on: https://gerrit.libreoffice.org/71041 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-04-13Fix Python exception in gdb pretty-printer basegfxJens Carl
Add single quotes around the namespace::class construct, when calling gdb.parse_and_eval(), otherwise this exception is thrown: "Python Exception <class 'gdb.error'> A syntax error in expression, near `)xxx)->count($'.:" The reason is a possible conflict with '::' referring a static variable (https://sourceware.org/gdb/onlinedocs/gdb/Variables.html). Also improved the B2DPolyPolygonPrinter::children method to avoid a segmentation fault, when accessing member m_value. Change-Id: I1c15a4b786e1e374c67ace445d28c1ce210a4c04 Reviewed-on: https://gerrit.libreoffice.org/70537 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-25fix gdb pretty printingNoel Grandin
revert part of commit 6f50961e69406a17d6ec998956a6b33208b1001b remove more rtl::OUString and OString prefixes Change-Id: I026f8175c855a20bab54940f6235bca5c91ddbab
2018-10-24remove more rtl::OUString and OString prefixesNoel Grandin
which seem to have snuck back in since the great rounds of removals. Change-Id: I85f7f5f4801c0b48dae8b50f51f83595b286d6a1 Reviewed-on: https://gerrit.libreoffice.org/62229 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-04-04Fix SfxItemSet pretty printer after some uniqueptr conversionsKatarina Behrens
just whyyyyyyy are you people doing this, why do you gratuitously break things others rely upon for productivity?!?? I don't give a F about uniqueptrs, all I want is to be able to print this bloody SfxItemSet. It's frustrating AF Change-Id: I0b6110c1806c31a3c098fb9dc73883047191c7f9 Reviewed-on: https://gerrit.libreoffice.org/52362 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2018-03-14fix pretty printing of Fraction betterNoel Grandin
work-around gdb bug, and deal with different representations of std::unique_ptr in different versions of libc++. Change-Id: I02a1f49c07dbcd70e13ef6be48e20b510bf5e3fa
2018-03-14Adapt FractionPrinterStephan Bergmann
...to 048a32d903c8cc81a8836c7c7209b92e0bfd6cd7 "use unique_ptr for pImpl in tools/", exploiting intimate knowledge of libstdc++ internals as was already done in 51bb68928933bf5d72efb9193f1be6af6e72c80f "fix BigPtrArray pretty printer". Due to <https://sourceware.org/bugzilla/show_bug.cgi?id=22968> "ptype does not find inner C++ class type without -readnow", at least for me only works when gdb is invoked with -readnow. Change-Id: I365733f3c661eea2f19a9b85015aa5d50e63e6a4
2017-11-08gdb pretty-printers: avoid segfauls in B2DPolygonPrinterMichael Stahl
gdb 8.0.1 tends to sefault while evaluating the getB2DPoint() calls; it passes some obviously wrong index instead of 0. Also, add a children method to B2DPolyPolygonPrinter. Change-Id: Ifbf52ad384d1f60b26ee95f87405eff2c6f2388a
2017-09-29gdb pretty-printers: fix StringPrinterHelper for gdb 8.0Michael Stahl
Latest gdb release "lazy_string" validates the array size: Traceback (most recent call last): File "/work/lo/master/solenv/gdb/libreoffice/util/string.py", line 29, in to_string return self.make_string(data, self.encoding, len) File "/work/lo/master/solenv/gdb/libreoffice/util/string.py", line 66, in make_string return data.lazy_string(encoding, length) gdb.error: Length is larger than array size. rtl_uString has "sal_Unicode buffer[1];", which is a lie as the real size is the same as "length". Taking the address of "buffer" appears to avoid the exception. Change-Id: I85710b1adfae584ba09c8d517e9b49b290e79d8a
2017-09-15solenv: fix GDB pretty-printers for SwNodes yet againMichael Stahl
Change-Id: I1eb1efedb98979b692874ae0ec48120cb5a38188
2017-07-29Fix no longer valid commentPranav Kant
This was changed in d72aad218c9737fb19d1a835b03c13b7107a96c0 Change-Id: Ie93f603c82669ca612fbf9635a62c50e63702a85
2017-07-28Fix scheduler GDB pretty printerJan-Marek Glogowski
mbDelete is gone, as we simply check for mpTask. Change-Id: I9d451f2445fb6b978d177b45d75abde2595c5fac
2017-07-13fix BigPtrArray pretty printerNoel Grandin
after commit 64079184cc06444e9dfdb55a5c66829e929d4a59 "improve useuniqueptr loplugin to find arrays" Change-Id: I29841af65fcb0c1f92e52d9aeee164328bbb4663
2017-07-13Run Idle tasks immediatlyJan-Marek Glogowski
There is really no reason to wait a millisecond for an idle. Change-Id: I7665d5f2e7d6ba3e01290a692bbc8e42c36b9986
2017-07-13Introduce a scheduler stackJan-Marek Glogowski
While the stack removes all invoked tasks from the queue, which actively removes it from scheduling, it also helps to faster handle nested calls, as we don't have to look for the previous position to move the task to the end of the queue for the round robin. Change-Id: I358cf2492e9630f67685a2b780509edb56691830
2017-07-07re-add some gdb BigPtrArray pretty printingNoel Grandin
After commit c6902761d797253cda8b3f71f102c66108585e24 "Revert "use std::vector in BigPtrArray"" <mst_> noelgrandin: you reverted both gdb changes but only one sw change? <noelgrandin> mst_, I thought your gdb change only appliled to the std::vector? <mst_> noelgrandin: there was another std::something or other change there, one was mvInfo and the other mvData <noelgrandin> mst_, sigh, will fix that Change-Id: I3059d29b1a559eb3077f5d713be011e15e887ee0
2017-07-07Revert "use std::vector in BigPtrArray"Noel Grandin
which is causing crashes in the crashtesting in ooo119635-3.docx and ooo119568-2.docx It is definitely some kind of use-after-free error, but the compress and delete logic for BigPtrArray is too hairy for me to debug right now. This reverts commit 1eee0abd459a508a6dcf9e71cbf2c1be3725faa7. Also revert commit 4f743419a04375160437a910254c45dea396f70d "gdb pretty-printers: fix BigPtrArrayPrinter after recent std::isation" Change-Id: Id870876432a060f9347aafb43bf0df692ea24464 Reviewed-on: https://gerrit.libreoffice.org/39684 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-28gdb pretty-printers: fix BigPtrArrayPrinter after recent std::isationMichael Stahl
Change-Id: Ie98f080fbb0efb807dcb2fb7893811f68e831a8f
2017-04-04Missing str(...) when an arg is itself a css::uno::Sequence<...>Stephan Bergmann
Change-Id: I54529e7086014a2feba89eb73f3b368d36f758b8
2017-01-23Revert "used std::map in SfxItemSet"Noel Grandin
This reverts commit 2757ee9fe610e253e4ccc37423fa420004d0f388. Besides causing a performance regression, I now notice that there is code in SW that relies on iterating over two different SfxItemSet's in parallel, and assumes that missing items are returned as nullptr, which is not the case for my std::map based change. Change-Id: I2b1110350fe4c4b74e5508558e9661ef1e1a103e
2017-01-17Change Idle to be a Timer subclassJan-Marek Glogowski
Drops a lot of duplicated code, as Idle is just a convenience class for instant, mostly low priority timers. Change-Id: I847592e92e86d15ab1cab168bf0e667322e48048
2017-01-17Refactor Scheduler to add Task classJan-Marek Glogowski
Moves all the "task-specific" stuff into a Task class and just keeps the "real" static Scheduler functions in the original Scheduler class. Change-Id: I9eb02d46e2bcf1abb06af5bab1fa0ee734d1984c
2017-01-17tdf#97087 GDB pretty print the Scheduler task listJan-Marek Glogowski
In addition to the GDB pretty printer, this annotates a lot more Timers and Idles. Change-Id: I5b93fab02161b23bb753e65ef92643a04fb0789c
2017-01-17used std::map in SfxItemSetNoel Grandin
instead of naked array SfxItemIter ended up needing to take copies of stuff because various code likes to iterate over the items and delete items inside the loop. The gdb pretty printer is no longer quite as pretty as it was before, but it still prints useful info. Change-Id: I59b07ea42f6b1c74798a15402970b9dbd8233dbe
2016-12-20gdb pretty printers: fix the SwXTextCursor::Impl one even moreMichael Stahl
Turns out that commit 30f3315d52df22716c086836c41465a6c4cb98b5 has removed the SwClient there a long time ago, and the SwUnoCrsr was also renamed... Change-Id: I92932130c5adbea530c39557932efce70c9f75e7
2016-12-20gdb pretty printers: fix BigPtrArray printer for member renameMichael Stahl
Change-Id: Ia9da0c0931a01b2c99c24420a9ba603b47a711c1
2016-12-20gdb pretty printers: fix SwXTextCursor::Impl printer for SwClient renameMichael Stahl
Change-Id: Ief136f57ce60bde1faa0603961aa775967621fbf
2016-12-20gdb pretty printers: fix SwPaM printer for Ring member renamingMichael Stahl
Change-Id: I605e4e972468165e7f5d21681b6e7eeb228dfdc9
2016-12-14solenv: adapt SwPositionPrinter to BigPtrEntry renamingMichael Stahl
Change-Id: I096211333c563b501627fef0dbdec8c3c98d501a
2016-10-23Fix typosAndrea Gelmini
Change-Id: Ib7b17f85c7b6a1937c3f6e1617ceec58074643b4 Reviewed-on: https://gerrit.libreoffice.org/30040 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: jan iversen <jani@documentfoundation.org> Tested-by: jan iversen <jani@documentfoundation.org>
2016-07-08Resolves: tdf#100452 class Date full (BCE,CE) proleptic Gregorian calendarEike Rathke
... implementing signed years with year 0 gap. Date(31,12,-1) last day BCE Date(1,1,1) first day CE New class Date member functions: * AddYears(sal_Int16) to be used instead of aDate.SetYear(aDate.GetYear()+sal_Int16) to handle year 0 gap. * convenience GetNextYear() to be used insted of GetYear()+1 * convenience GetPrevYear() to be used insted of GetYear()-1 * AddMonths(sal_Int32) * operator=(const css::util::Date&) New class DateTime member functions: * operator=(const css::util::DateTime&) Made some conversion ctors explicit, specifically Date(sal_Int32) Adapted hopefully all places that used a sal_uInt16 year to use sal_Int16 where appropriate. Eliminated some quirks in date handling found on the fly. Added era handling to i18npool icu calendar setting interface, which missing was responsible for 0001-01-01 entered in Calc being set as -0001-01-01, hence subtracting one day resulted in -0002-12-31. Change-Id: I77b39fba9599ebd5067d7864f6c9ebe01f6f578f Reviewed-on: https://gerrit.libreoffice.org/27049 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins <ci@libreoffice.org>
2016-06-16Improve output of UnoAnyPrinterStephan Bergmann
Change-Id: I1461264fe7f951c9ecec777c6217d0acfb7e4254
2016-01-02GDB: pretty-print more sw::mark::MarkBase classesJan-Marek Glogowski
Generalize the UnoMark pretty printer to actually print many objects inheriting from sw::mark::MarkBase. Also adds the mark name to the output. Change-Id: Idaec06ba448702ee3a47b474736df954646c0300
2015-12-07loplugin:mergeclasses OOXMLPropertyImpl into OOXMLPropertyNoel Grandin
Change-Id: I1447cfc76c529332450c90a21b6525d3103fe852
2015-12-07loplugin:mergeclasses, merge OOXMLPropertyImpl into OOXMLPropertyNoel Grandin
Change-Id: I73eb7e664c0a53f135c06c3d8ea450bd9493c780
2015-07-27gdb pretty printer for SwNodes fails on Python 3 due to "unicode"Michael Stahl
Change-Id: I8e4983a91d4f97a2a20fbeed89d4e0f186c35fad
2015-06-15sw: prefix members of SwNodeIndexMichael Stahl
Change-Id: Ia31c7a91bf78b967e70d288374d9e21439c99221