Date: prev next · Thread: first prev next last
2015 Archives by date, by thread · List index


Hi Michael,

Le 15/06/2015 15:30, Michael Stahl a écrit :
On 15.06.2015 15:21, Michel Renon wrote:
> Hi,
>
> Here is the next step of QtCreator integration : debugging of OUString
> (and internal type rtl_uString)
>
> http://imgur.com/ZrvIZ2V,2G52CwW,2r2wVSP
>
> 1 : default view for OUString variable : just address and length
> 2 : new view : you have the string (here with some specific french
> characters and 'euro' symbol)
> 3 : new view : you can have internals of OUString

i don't quite understand - why not just display the content of the
string by default using the python pretty printers in solenv/gdb, like
Eclipse CDT and KDevelop do?

Because QtCreator has its own api...
http://doc.qt.io/qtcreator/creator-debugging-helpers.html

It seems that there cannot be common/shared code between existing gdb helpers and qtcreator's one 
[1].


So can i create a folder : solenv/gdb/qtcreator that will contain specific qtcreator gdb helpers ?
I started with strings, and will continue with other basic LO types.


Currently, I need to manually enter the path to those helpers in a QtCreator dialog.
(qtcreator just execute in gdb "source path/to/helper.py")
Is there a way to predefine that command in gdb to avoid any manual configuration ?
If possible, I plan to execute it at the end of "make qtcreator-ide-integration" command.


Cheers,
Michel


[1] An example with OUString for QtCreator :
---------------------------------------------------------------

def __get_rtl_ustring(d, pdata):
    """
    """
    charSize = 2
    array = pdata["buffer"]
    length = pdata["length"]
    cutoff = min(length*charSize, d.stringCutOff)
    mem = d.readMemory(array, cutoff)
    encodingType = Hex4EncodedLittleEndian
    return mem, encodingType

def qdump__rtl__OUString(d, value):
    """
    class SAL_WARN_UNUSED SAL_DLLPUBLIC_RTTI OUString
    {
    public:
        /// @cond INTERNAL
        rtl_uString * pData;
        /// @endcond
    """

    pdata = value["pData"]

    # show rtl_uString
    mem, encodingType = __get_rtl_ustring(d, pdata)
    d.putValue(mem, encodingType)
    d.putAddress(value.address)

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.