2018-04-04 21:48:42 +02:00
<!doctype html>
< html >
2019-09-08 12:06:53 +02:00
<!--
!!! WARNING !!!
This file was auto-generated from readme/debugging.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
2020-10-13 14:02:35 +02:00
https://github.com/laurent22/joplin/blob/dev/readme/debugging.md
2019-09-08 12:06:53 +02:00
-->
2018-04-04 21:48:42 +02:00
< head >
2020-10-09 19:35:46 +02:00
< title > How to enable debugging | Joplin< / title >
2018-04-04 21:48:42 +02:00
< meta charset = "utf-8" >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" >
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
2019-04-18 16:00:32 +02:00
< link rel = "stylesheet" href = "https://joplinapp.org/css/bootstrap.min.css" >
2020-10-09 19:55:04 +02:00
< link rel = "shortcut icon" type = "image/x-icon" href = "https://joplinapp.org/favicon.ico" >
2019-11-18 10:39:37 +02:00
<!-- <link rel="stylesheet" href="https://joplinapp.org/css/fontawesome - all.min.css"> -->
< link rel = "stylesheet" href = "https://joplinapp.org/css/fork-awesome.min.css" >
2019-04-18 16:00:32 +02:00
< script src = "https://joplinapp.org/js/jquery-3.2.1.slim.min.js" > < / script >
2018-04-04 21:48:42 +02:00
< style >
body {
background-color: #F1F1F1;
color: #333333;
}
2020-10-15 16:35:43 +02:00
.root {
overflow: hidden;
}
a[href^="mailto:"] {
word-break: break-all;
}
2018-04-04 21:48:42 +02:00
table {
margin-bottom: 1em;
}
td, th {
padding: .8em;
border: 1px solid #ccc;
}
2019-10-01 23:27:57 +02:00
.page-markdown table pre,
.page-markdown table blockquote {
margin-bottom: 0;
}
.page-markdown table pre,
.page-markdown table blockquote {
margin-bottom: 0;
}
.page-markdown table pre {
background-color: rgba(0,0,0,0);
border: none;
margin: 0;
padding: 0;
}
2018-04-04 21:48:42 +02:00
h1, h2 {
border-bottom: 1px solid #eaecef;
padding-bottom: 0.3em;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-weight: 600;
font-size: 2em;
margin-bottom: 16px;
}
h2 {
font-size: 1.6em;
}
h3 {
font-size: 1.3em;
}
code {
color: black;
background-color: #eee;
border: 1px solid #ccc;
font-size: .85em;
2020-10-15 16:07:26 +02:00
word-break: break-all;
2018-04-04 21:48:42 +02:00
}
pre code {
border: none;
}
pre {
font-size: .85em;
}
2019-10-01 23:27:57 +02:00
blockquote {
font-size: 1em;
color: #555;
};
2018-04-04 21:48:42 +02:00
#toc ul {
margin-bottom: 10px;
}
2020-08-02 13:28:50 +02:00
#toc > ul > li {
margin-bottom: 10px;
}
2018-04-04 21:48:42 +02:00
#toc {
padding-bottom: 1em;
}
2019-12-02 22:41:26 +02:00
.title {
display: flex;
align-items: center;
}
2018-04-04 21:48:42 +02:00
.title-icon {
2019-12-02 22:41:26 +02:00
display: flex;
height: 1em;
}
.title-text {
display: flex;
font-weight: normal;
margin-bottom: .2em;
margin-left: .5em;
2018-04-04 21:48:42 +02:00
}
.sub-title {
2019-12-02 22:41:26 +02:00
font-weight: normal;
2018-04-04 21:48:42 +02:00
}
.container {
background-color: white;
padding: 0;
box-shadow: 0 10px 20px #888888;
}
table.screenshots {
margin-top: 2em;
margin-bottom: 2em;
}
table.screenshots th {
height: 3em;
text-align: center;
}
table.screenshots th,
table.screenshots td {
border: 1px solid #C2C2C2;
}
img[align="left"] {
margin-right: 10px;
margin-bottom: 10px;
}
.mobile-screenshot {
height: 40em;
padding: 1em;
}
.cli-screenshot-wrapper {
background-color: black;
vertical-align: top;
padding: 1em 2em 1em 1em;
}
.cli-screenshot {
font-family: "Monaco", "Inconsolata", "CONSOLAS", "Deja Vu Sans Mono", "Droid Sans Mono", "Andale Mono", monospace;
background-color: black;
color: white;
border: none;
}
.cli-screenshot .prompt {
color: #48C2F0;
}
.top-screenshot {
margin-top: 2em;
text-align: center;
}
.header {
position: relative;
padding-left: 2em;
padding-right: 2em;
padding-top: 1em;
padding-bottom: 1em;
color: white;
background-color: #2B2B3D;
}
.header a h1 {
color: white;
}
2019-12-02 22:41:26 +02:00
.header a:hover {
text-decoration: none;
}
2018-04-04 21:48:42 +02:00
.content {
padding-left: 2em;
padding-right: 2em;
padding-bottom: 2em;
padding-top: 2em;
}
.forkme {
position: absolute;
right: 0;
top:0;
}
.nav-wrapper {
position: relative;
width: inherit;
}
.nav {
background-color: black;
2020-10-15 16:35:43 +02:00
display: flex;
flex-direction: row;
align-items: center;
2018-04-04 21:48:42 +02:00
}
.nav.sticky {
position:fixed;
top: 0;
width: inherit;
box-shadow: 0 0 10px #000000;
}
.nav a {
color: white;
display: inline-block;
padding: .6em .9em .6em .9em;
}
.nav ul {
padding-left: 2em;
margin-bottom: 0;
display: table-cell;
2020-10-15 16:35:43 +02:00
display: flex;
width: 100%;
2018-04-04 21:48:42 +02:00
}
.nav ul li {
display: inline-block;
padding: 0;
}
.nav li.selected {
background-color: #222;
font-weight: bold;
}
.nav-right {
2020-10-15 16:35:43 +02:00
display: flex;
2018-04-04 21:48:42 +02:00
text-align: right;
vertical-align: middle;
line-height: 0;
2020-10-15 16:35:43 +02:00
margin-right: 10px;
2018-04-04 21:48:42 +02:00
}
.nav-right .share-btn {
display: none;
}
.nav-right .small-share-btn {
display: none;
}
.footer {
2020-10-15 16:07:26 +02:00
padding: 2em;
2018-04-04 21:48:42 +02:00
border-top: 1px solid #d4d4d4;
margin-top: 2em;
color: gray;
font-size: .9em;
}
2019-05-03 00:54:52 +02:00
a.heading-anchor {
display: inline-block;
opacity: 0;
width: 1.3em;
font-size: 0.7em;
2019-10-01 23:27:57 +02:00
margin-left: 0.4em;
2019-05-03 00:54:52 +02:00
line-height: 1em;
text-decoration: none;
2019-10-01 23:27:57 +02:00
transition: opacity 0.3s;
2019-05-03 00:54:52 +02:00
}
a.heading-anchor:hover,
h1:hover a.heading-anchor,
h2:hover a.heading-anchor,
h3:hover a.heading-anchor,
h4:hover a.heading-anchor,
h5:hover a.heading-anchor,
h6:hover a.heading-anchor {
opacity: 1;
}
2019-11-18 10:49:01 +02:00
2020-10-15 16:07:26 +02:00
@media (min-width: 992px) {
.content{
display: flex;
}
#toc{
display: block!important;
align-self: flex-start;
width: 300px;
position: sticky; top: 20px; left: 0;
}
.main{
width: calc(100% - 300px);
}
}
2019-11-18 10:49:01 +02:00
.bottom-links {
display: flex;
justify-content: center;
border-top: 1px solid #d4d4d4;
margin-top: 30px;
padding-top: 25px;
}
2018-04-04 21:48:42 +02:00
@media all and (min-width: 400px) {
.nav-right .share-btn {
display: inline-block;
}
.nav-right .small-share-btn {
display: none;
}
}
< / style >
< / head >
< body >
2020-10-15 16:35:43 +02:00
< div class = "container root page-debugging" >
2018-04-04 21:48:42 +02:00
< div class = "header" >
2019-04-18 16:00:32 +02:00
< a class = "forkme" href = "https://github.com/laurent22/joplin" > < img src = "https://joplinapp.org/images/ForkMe.png" / > < / a >
2019-12-02 22:41:26 +02:00
< a href = "https://joplinapp.org" > < h1 class = "title" > < img class = "title-icon" src = "https://joplinapp.org/images/Icon512.png" > < span class = "title-text" > Joplin< / span > < / h1 > < / a >
< p class = "sub-title" > An open source note taking and to-do application with synchronisation capabilities< / p >
2018-04-04 21:48:42 +02:00
< / div >
< div class = "nav-wrapper" >
< div class = "nav" >
< ul >
2019-04-18 16:00:32 +02:00
< li class = "" > < a href = "https://joplinapp.org/" title = "Home" > < i class = "fa fa-home" > < / i > < / a > < / li >
2019-05-22 17:49:57 +02:00
< li > < a href = "https://discourse.joplinapp.org" title = "Forum" > Forum< / a > < / li >
2018-04-25 19:24:13 +02:00
< li > < a class = "help" href = "#" title = "Menu" > Menu< / a > < / li >
2020-05-28 02:35:57 +02:00
<!-- <li><a class="gsod" href="https://joplinapp.org/gsod2020/" title="Google Season of Docs 2020">GSoD 2020</a></li> -->
2018-04-04 21:48:42 +02:00
< / ul >
< div class = "nav-right" >
2018-06-15 20:28:58 +02:00
<!--
2019-04-18 16:00:32 +02:00
< iframe class = "share-btn" src = "https://www.facebook.com/plugins/share_button.php?href=http%3A%2F%2Fjoplinapp.org&layout=button&size=small&mobile_iframe=true&width=60&height=20&appId" width = "60" height = "20" style = "border:none;overflow:hidden" scrolling = "no" frameborder = "0" allowTransparency = "true" > < / iframe >
< iframe class = "share-btn" src = "https://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fjoplinapp.org" width = "62" height = "20" title = "Tweet" style = "border: 0; overflow: hidden;" > < / iframe >
2018-06-15 20:28:58 +02:00
-->
2018-04-04 21:48:42 +02:00
< iframe class = "share-btn share-btn-github" src = "https://ghbtns.com/github-btn.html?user=laurent22&repo=joplin&type=star&count=true" frameborder = "0" scrolling = "0" width = "100px" height = "20px" > < / iframe >
< / div >
< / div >
< / div >
< div class = "content" >
< div id = "toc" > < ul >
< li >
< p > Applications< / p >
< ul >
2019-10-01 23:27:57 +02:00
< li > < a href = "https://joplinapp.org/desktop/" > Desktop application< / a > < / li >
< li > < a href = "https://joplinapp.org/mobile/" > Mobile applications< / a > < / li >
< li > < a href = "https://joplinapp.org/terminal/" > Terminal application< / a > < / li >
< li > < a href = "https://joplinapp.org/clipper/" > Web Clipper< / a > < / li >
2018-04-04 21:48:42 +02:00
< / ul >
< / li >
< li >
< p > Support< / p >
< ul >
2019-05-22 17:49:57 +02:00
< li > < a href = "https://discourse.joplinapp.org" > Joplin Forum< / a > < / li >
2019-10-14 23:28:24 +02:00
< li > < a href = "https://joplinapp.org/markdown/" > Markdown Guide< / a > < / li >
2019-10-01 23:27:57 +02:00
< li > < a href = "https://joplinapp.org/e2ee/" > How to enable end-to-end encryption< / a > < / li >
2020-06-03 12:41:02 +02:00
< li > < a href = "https://joplinapp.org/conflict/" > What is a conflict?< / a > < / li >
2019-10-01 23:27:57 +02:00
< li > < a href = "https://joplinapp.org/debugging/" > How to enable debug mode< / a > < / li >
< li > < a href = "https://joplinapp.org/faq/" > FAQ< / a > < / li >
2018-04-04 21:48:42 +02:00
< / ul >
< / li >
< li >
2020-10-09 19:35:46 +02:00
< p > Joplin API< / p >
< ul >
< li > < a href = "https://joplinapp.org/api/overview/" > Joplin API Overview< / a > < / li >
< li > < a href = "https://joplinapp.org/api/get_started/plugins/" > Plugin development< / a > < / li >
< li > < a href = "https://joplinapp.org/api/tutorials/toc_plugin/" > Plugin tutorial< / a > < / li >
2020-10-09 22:56:56 +02:00
< li > < a href = "https://joplinapp.org/api/references/plugin_api/classes/joplin.html" > Plugin API< / a > < / li >
2020-10-09 19:35:46 +02:00
< li > < a href = "https://joplinapp.org/api/references/rest_api/" > Data API documentation< / a > < / li >
< / ul >
< / li >
< li >
2020-08-02 13:28:50 +02:00
< p > Development< / p >
< ul >
2020-10-09 19:35:46 +02:00
< li > < a href = "https://github.com/laurent22/joplin/blob/dev/BUILD.md" > How to build the apps< / a > < / li >
2020-10-09 20:04:18 +02:00
< li > < a href = "https://joplinapp.org/spec/e2ee/" > End-to-end encryption spec< / a > < / li >
2020-08-02 13:28:50 +02:00
< li > < a href = "https://joplinapp.org/spec/history/" > Note History spec< / a > < / li >
< li > < a href = "https://joplinapp.org/spec/sync_lock/" > Sync Lock spec< / a > < / li >
2020-10-09 19:35:46 +02:00
< li > < a href = "https://joplinapp.org/spec/plugins/" > Plugin Architecture spec< / a > < / li >
2020-10-13 14:02:35 +02:00
< li > < a href = "https://joplinapp.org/spec/search_sorting/" > Search Sorting spec< / a > < / li >
2020-08-02 13:28:50 +02:00
< / ul >
< / li >
< li >
2020-05-01 15:50:28 +02:00
< p > Google Summer of Code 2020< / p >
< ul >
2020-10-09 19:35:46 +02:00
< li > < a href = "https://joplinapp.org/gsoc2020/index/" > Google Summer of Code 2020< / a > < / li >
2020-05-01 15:50:28 +02:00
< li > < a href = "https://joplinapp.org/gsoc2020/ideas/" > Project Ideas< / a > < / li >
< / ul >
< / li >
< li >
2018-04-04 21:48:42 +02:00
< p > About< / p >
< ul >
2019-10-01 23:27:57 +02:00
< li > < a href = "https://joplinapp.org/changelog/" > Changelog (Desktop App)< / a > < / li >
< li > < a href = "https://joplinapp.org/changelog_cli/" > Changelog (CLI App)< / a > < / li >
< li > < a href = "https://joplinapp.org/stats/" > Stats< / a > < / li >
< li > < a href = "https://joplinapp.org/donate/" > Donate< / a > < / li >
2018-04-04 21:48:42 +02:00
< / ul >
< / li >
< / ul >
< / div >
2020-10-15 16:07:26 +02:00
< div class = "main" >
2019-10-01 23:27:57 +02:00
< h1 > How to enable debugging< a name = "how-to-enable-debugging" href = "#how-to-enable-debugging" class = "heading-anchor" > 🔗< / a > < / h1 >
2018-04-04 21:48:42 +02:00
< p > It is possible to get the apps to display or log more information that might help debug various issues.< / p >
2019-10-01 23:27:57 +02:00
< h2 > Desktop application< a name = "desktop-application" href = "#desktop-application" class = "heading-anchor" > 🔗< / a > < / h2 >
2018-04-04 21:48:42 +02:00
< ul >
2020-09-04 20:06:36 +02:00
< li > Add a file named " flags.txt" in the config directory (should be < code > ~/.config/joplin-desktop< / code > or < code > c:\Users\YOUR_NAME\.config\joplin-desktop< / code > ) with the following content: < code > --open-dev-tools --debug --log-level debug< / code > < / li >
2018-04-04 21:48:42 +02:00
< li > Restart the application< / li >
< li > The development tools should now be opened. Click the " Console" tab< / li >
< li > Now repeat the action that was causing problem. The console might output warnings or errors - please add them to the GitHub issue. Also open log.txt in the config folder and if there is any error or warning, please also add them to the issue.< / li >
< / ul >
2019-10-01 23:27:57 +02:00
< h2 > CLI application< a name = "cli-application" href = "#cli-application" class = "heading-anchor" > 🔗< / a > < / h2 >
2018-04-04 21:48:42 +02:00
< ul >
2020-09-04 20:06:36 +02:00
< li > Start the app with < code > joplin --debug --log-level debug< / code > < / li >
2018-04-04 21:48:42 +02:00
< li > Check the log.txt as specified above for the desktop application and attach the log to the GitHub issue (or just the warnings/errors if any)< / li >
< / ul >
2019-10-01 23:27:57 +02:00
< h2 > Mobile application< a name = "mobile-application" href = "#mobile-application" class = "heading-anchor" > 🔗< / a > < / h2 >
2018-04-04 21:48:42 +02:00
< ul >
< li > In the options, enable Advanced Option< / li >
< li > Open the log in the top right hand corner menu and post a screenshot of any error/warning.< / li >
< / ul >
2019-10-01 23:27:57 +02:00
< h1 > Creating a low-level bug report on Android< a name = "creating-a-low-level-bug-report-on-android" href = "#creating-a-low-level-bug-report-on-android" class = "heading-anchor" > 🔗< / a > < / h1 >
2018-05-09 17:43:33 +02:00
< p > < a href = "https://developer.android.com/studio/debug/bug-report" > https://developer.android.com/studio/debug/bug-report< / a > < / p >
< p > To get a bugreport directly from your device, do the following:< / p >
< ul >
< li > Be sure you have < a href = "https://developer.android.com/studio/debug/dev-options" > Developer Options< / a > enabled.< / li >
< li > In Developer options, tap Take bug report.< / li >
< li > Select the type of bug report you want and tap Report.< / li >
< / ul >
< p > After a moment you get a notification that the bug report is ready. To share the bug report, tap the notification.< / p >
2019-10-01 23:27:57 +02:00
< h1 > Creating a low-level bug report on iOS< a name = "creating-a-low-level-bug-report-on-ios" href = "#creating-a-low-level-bug-report-on-ios" class = "heading-anchor" > 🔗< / a > < / h1 >
2019-04-30 19:58:35 +02:00
< p > Some crashes cannot be investigated using Joplin's own tools. In that case, it can be very helpful to provide a native iOS crash report.< / p >
2018-05-06 12:17:34 +02:00
< p > For this, please follow these instructions:< / p >
2020-10-13 14:02:35 +02:00
< p > You can send it to this address < a href = "https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/AdresseSupport.png" > https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/AdresseSupport.png< / a > < / p >
2018-05-06 12:17:34 +02:00
< p > < a href = "https://developer.apple.com/library/content/qa/qa1747/_index.html" > https://developer.apple.com/library/content/qa/qa1747/_index.html< / a > < / p >
< p > Getting Crash Logs Directly From a Device Without Xcode< / p >
< p > Your users can retrieve crash reports from their device and send them to you via email by following these instructions.< / p >
< p > (It is not possible to get device console logs directly from a device)< / p >
2019-04-30 19:58:35 +02:00
< ol >
< li >
< p > Open Settings app< / p >
< / li >
< li >
< p > Go to Privacy, then Diagnostics & Usage< / p >
< / li >
< li >
< p > Select Diagnostics & Usage Data< / p >
< / li >
< li >
2020-06-06 16:32:36 +02:00
< p > Locate the log for the crashed app. The logs will be named in the format: < code > < AppName> _< DateTime> _< DeviceName> < / code > < / p >
2019-04-30 19:58:35 +02:00
< / li >
< li >
< p > Select the desired log. Then, using the text selection UI select the entire text of the log. Once the text is selected, tap Copy< / p >
< / li >
< li >
< p > Paste the copied text to Mail and send to an email address as desired< / p >
< / li >
< / ol >
2019-11-18 10:49:01 +02:00
< div class = "bottom-links" >
2020-10-13 14:02:35 +02:00
< a href = "https://github.com/laurent22/joplin/blob/dev/readme/debugging.md" >
2019-11-18 10:49:01 +02:00
< i class = "fa fa-github" > < / i > Improve this doc
< / a >
< / div >
2018-04-04 21:48:42 +02:00
< script >
function stickyHeader() {
return; // Disabled
if ($(window).scrollTop() > 179) {
$('.nav').addClass('sticky');
} else {
$('.nav').removeClass('sticky');
}
}
$('#toc').hide();
$('.help').click(function(event) {
event.preventDefault();
$('#toc').show();
});
$(window).scroll(function() {
stickyHeader();
});
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
< / script >
2020-10-15 16:07:26 +02:00
< / div > < / div >
2018-04-04 21:48:42 +02:00
< div class = "footer" >
2020-10-15 16:17:18 +02:00
Copyright (C) 2016-2020 Laurent Cozic
2018-04-04 21:48:42 +02:00
< / div >
< / body >
< / html >