D4929: DrKonqi : lldb support

Kevin Funk noreply at phabricator.kde.org
Tue Mar 7 20:46:02 UTC 2017

kfunk requested changes to this revision.
kfunk added a comment.
This revision now requires changes to proceed.

  So, plasma-workspace is usually way out of my comfort zone, I'm commenting anyway since RJVB urged me to do it.
  See my notes.


> backtracegenerator.cpp:62
> +            // than waiting a potentially very long time for it to heed the kill() request.
> +            m_proc->deleteLater();
> +        } else {

Please do this only if `lldb` is used then. No need  to change code which apparently worked fine for years. Also, did you try `QProcess::terminate` instead?

PS: `QProcess` gets unhappy when being deleted while still running (=> runtime warnings).

PPS: Please read my other advice about quitting LLDB below, too

> backtracegenerator.cpp:144
>          emit newLine(line);
> +        line = line.simplified();
> +        if (line.startsWith(QLatin1String("Process ")) && line.endsWith(QLatin1String(" detached"))) {

This whole logic looks really cumbersome.

Is there really no way to exit LLDB cleanly after detach?

http://stackoverflow.com/questions/26267289/how-can-i-exit-lldb-after-running-commands-with-o suggests there is:

  lldb /bin/ls -o "run" -o "script import os; os._exit(1)"

I take it not everyone's got Python on they system, but this works for me as well:

  lldb -p $(pidof kate) -o detach -o quit

Just put that into the `-o quit` in the lldbrc?

> backtracegenerator.h:87
>      QString           m_parsedBacktrace;
> +    bool              m_lldbDetached;

Looks pretty unclean to have a backend-specific variable around here.

> AppleTerminal:1
> +#!/bin/sh
> +

Please explain why this file is needed(?)

> lldbrc:9
> +ExecInputFile=%tempfile
> +BatchCommands=set set term-width 200\nthread info\nbt all\ndetach

`set set`? Really?

> drkonqibackends.cpp:165
>      KConfigGroup config(KSharedConfig::openConfig(), "DrKonqi");
> -#ifndef Q_OS_WIN
> +    QString defaultDebuggerName = config.readEntry("Debugger", QString("lldb"));

Why these special conditions? Needs comments.

Whether to use or not to use lldb on a particular OS X version should be runtime decision, too.

> backtraceparserlldb.cpp:26
> +public:
> +    BacktraceLineLldb(const QString & line);
> +};

Style: Use `const QString &line`

More of these issues in other lines

> backtraceparserlldb.h:28
> +public:
> +    explicit BacktraceParserLldb(QObject *parent = 0);
> +


> backtraceparserlldb.h:31
> +protected Q_SLOTS:
> +    virtual void newLine(const QString & lineStr);
> +

Use `override`, strip `virtual`

  R120 Plasma Workspace


To: rjvbb, #plasma_workspaces, kfunk
Cc: kfunk, mart, broulik, kde-mac, plasma-devel, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-mac/attachments/20170307/f0039059/attachment.html>

More information about the kde-mac mailing list