Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(391)

Unified Diff: docs/qtcreator.md

Issue 2687733003: Add doc for Qt Creator (Closed)
Patch Set: Primiano's comment Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: docs/qtcreator.md
diff --git a/docs/qtcreator.md b/docs/qtcreator.md
new file mode 100644
index 0000000000000000000000000000000000000000..932cc093c3f91a5af30e76b1f85ebc8e3c966ad6
--- /dev/null
+++ b/docs/qtcreator.md
@@ -0,0 +1,120 @@
+# Use Qt Creator as IDE or GUI Debugger
+
+[Qt Creator](https://www.qt.io/ide/)
+([Wiki](https://en.wikipedia.org/wiki/Qt_Creator)) is a cross-platform C++ IDE.
+
+You can use Qt Creator as a daily IDE or just as a GDB frontend and that does
+not require project configuration.
+
+[TOC]
+
+## IDE
+
+### Workflow
+
+1. `ctrl+k` Activate Locator, you can open file(not support sublime-like-search) or type `. ` go to symbol.
+2. `ctrl+r` Build and Run, `F5` Debug.
+3. `F4` switch between header file and cpp file.
+4. `ctrl+shift+r` rename symbol under cursor.
+5. Code completion is built-in. And you can add your snippets.
+
+### Setup as IDE
+
+1. Install latest Qt Creator
+2. under chromium/src `gn gen out/Default --ide=qtcreator`
+3. qtcreator out/Default/qtcreator_project/all.creator
+
+It takes 3 minutes to parsing C++ files in my workstation!!! And It will not
+block you while parsing.
+
+#### Code Style
+
+1. Help - About Plugins enable Beautifier.
+2. Tools - Options - Beautifier - Clang Format, select use predefined style:
Nico 2017/03/03 15:57:16 The following things seem important to me: 1. cla
+chromium. You can also set a keyboard shortcut for it.
+3. Tools - Options - Code Style import this xml file
+
+```
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE QtCreatorCodeStyle>
+<!-- Written by QtCreator 4.2.1, 2017-02-08T19:07:34. -->
+<qtcreator>
+ <data>
+ <variable>CodeStyleData</variable>
+ <valuemap type="QVariantMap">
+ <value type="bool" key="AlignAssignments">true</value>
+ <value type="bool" key="AutoSpacesForTabs">false</value>
+ <value type="bool" key="BindStarToIdentifier">false</value>
+ <value type="bool" key="BindStarToLeftSpecifier">false</value>
+ <value type="bool" key="BindStarToRightSpecifier">false</value>
+ <value type="bool" key="BindStarToTypeName">true</value>
+ <value type="bool"
+ key="ExtraPaddingForConditionsIfConfusingAlign">true</value>
+ <value type="bool" key="IndentAccessSpecifiers">true</value>
+ <value type="bool" key="IndentBlockBody">true</value>
+ <value type="bool" key="IndentBlockBraces">false</value>
+ <value type="bool" key="IndentBlocksRelativeToSwitchLabels">false</value>
+ <value type="bool" key="IndentClassBraces">false</value>
+ <value type="bool" key="IndentControlFlowRelativeToSwitchLabels">true</value>
+ <value type="bool"
+ key="IndentDeclarationsRelativeToAccessSpecifiers">false</value>
+ <value type="bool" key="IndentEnumBraces">false</value>
+ <value type="bool" key="IndentFunctionBody">true</value>
+ <value type="bool" key="IndentFunctionBraces">false</value>
+ <value type="bool" key="IndentNamespaceBody">false</value>
+ <value type="bool" key="IndentNamespaceBraces">false</value>
+ <value type="int" key="IndentSize">2</value>
+ <value type="bool" key="IndentStatementsRelativeToSwitchLabels">true</value>
+ <value type="bool" key="IndentSwitchLabels">false</value>
+ <value type="int" key="PaddingMode">2</value>
+ <value type="bool" key="ShortGetterName">true</value>
+ <value type="bool" key="SpacesForTabs">true</value>
+ <value type="int" key="TabSize">2</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>DisplayName</variable>
+ <value type="QString">chrome</value>
+ </data>
+</qtcreator>
+```
+
+#### Build & Run
+
+In left panel, projects - setup the ninja command in build and clean step and
+executable chrome path in run.
+
+## Debugger
+
+**You can skip the project settings and use QtCreator as a single file
+standalone GDB frontend. **
+
+1. Tools - Options - Build & Run - Debuggers, make sure GDB is set.
+2. Tools - Options - Kits, change the Desktop kit to GDB(LLDB doesnot work in
+ Linux).
+3. Open file you want to debug.
+4. Debug - Start Debugging - Attach to running Application, you may need to
+ open chrome's task manager to find the process number.
+
+### Tips, tricks, and troubleshooting
+
+#### Make GDB start fast
+
+Add `gdb_index = true` to `gn args`.
+
+#### Debugger shows start then finish
+
+```
+$ echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
+```
+
+Ensure yama allow you to attach another process.
+
+#### Debugger do not stop in break point
+
+Ensure you are using GDB not LLDB in Linux.
+
+#### More
+
+See
+https://chromium.googlesource.com/chromium/src/+/master/docs/linux_debugging.md
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698