Jump to content
adrian

Tracy Debugger

Recommended Posts

10 hours ago, adrian said:

Do they go away if you clear the PW session (log out and back in again)? Does the problem continue after that?

Hello @adrian, thanks for orientate. Not Tracy's bug. The problem was with DB-driven Sessions (and yes I have updated PHP, MySQL). When I have uninstalled Session Handler Database module the problem was gone. And it returns if the Module activated again.

Moreover, debug bar doesn't work with Master mode with DB-Driven Sessions. That's why Legacy on the screenshot. But once again, it's not Tracy's problem, because some other problems was with sessions after update.

Thank you!

Share this post


Link to post
Share on other sites

Hi @M.O.Z.G - I am going to be away from my computer for the next few days, but just wanted to check in on this SessionHandlerDB stuff. What version of Tracy are you running - I thought all the issues with SessionHandlerDB were sorted out in recent versions. There is one outstanding issue I am waiting on Ryan for a fix in the PW core, but otherwise it should all be working.

Please let me know and if you are running the latest version, then I'll look into it more later. 

Share this post


Link to post
Share on other sites
2 hours ago, adrian said:

Hi @M.O.Z.G - I am going to be away from my computer for the next few days, but just wanted to check in on this SessionHandlerDB stuff. What version of Tracy are you running - I thought all the issues with SessionHandlerDB were sorted out in recent versions. There is one outstanding issue I am waiting on Ryan for a fix in the PW core, but otherwise it should all be working.

Please let me know and if you are running the latest version, then I'll look into it more later. 

Apache 2.4.25, PHP 5.6.30/7.1.1, SQLite 2.8.17/3.7.17
Processwire 3.0.42+
Tracy Debugger 4.1.7+
SessionHandlerDB 0.5.0

Share this post


Link to post
Share on other sites

@M.O.Z.G - Tracy is up to 4.3.1, so please try that version. If the problem still persists, could it be related to SQLite? Are you really not running MySQL? Does SQLite support PW in general?

Share this post


Link to post
Share on other sites
On 4/12/2017 at 3:00 AM, adrian said:

@M.O.Z.G - Tracy is up to 4.3.1, so please try that version. If the problem still persists, could it be related to SQLite? Are you really not running MySQL? Does SQLite support PW in general?

 

On 4/10/2017 at 4:23 PM, M.O.Z.G said:

Tracy Debugger 4.1.7+

@adrian I meant all versions that high up this one.

 

On 4/12/2017 at 3:00 AM, adrian said:

could it be related to SQLite? Are you really not running MySQL?

It's XAMPP virtual server on the linux machine. May be the problem with db-driven sessions is related to SQLite, but I never felt any problems with this bundle before.

I gonna check it in another environment later. I'll write if any new behavior will appear.

Share this post


Link to post
Share on other sites

Hi @adrian,

I have a fresh PW install 3.0.59 (blank profile), running on LAMP (apache 2.4+, php 7.0) and installed Tracy Debugger 4.3.1. I get the following error:

ErrorException: Undefined index: caller in /var/www/pwtest/site/assets/cache/FileCompiler/site/modules/TracyDebugger/panels/DebugModePanel.php:335
Stack trace:
#0 /var/www/pwtest/site/assets/cache/FileCompiler/site/modules/TracyDebugger/panels/DebugModePanel.php(335): Tracy\Bar->Tracy\{closure}(8, 'Undefined index...', '/var/www/pwtest...', 335, Array)
#1 /var/www/pwtest/site/assets/cache/FileCompiler/site/modules/TracyDebugger/tracy-master/src/Tracy/Bar.php(153): DebugModePanel->getPanel()
#2 /var/www/pwtest/site/assets/cache/FileCompiler/site/modules/TracyDebugger/tracy-master/src/Tracy/Bar.php(108): Tracy\Bar->renderPanels()
#3 /var/www/pwtest/site/assets/cache/FileCompiler/site/modules/TracyDebugger/tracy-master/src/Tracy/Debugger.php(266): Tracy\Bar->render()
#4 [internal function]: Tracy\Debugger::shutdownHandler()
#5 {main}

I've searched this topic but didn't see a similar incident. However, I have logged out/in, and cleared all cache entries. This error is still present.

This error is not preventing me from continuing development though.

Share this post


Link to post
Share on other sites

Thanks for the report @rick - that error is coming from the fairly recently added Selector Queries section in the Debug mode panel. I can easily add a check to make sure the "caller" index is defined, but I am curious why it's not available for you. Would you be willing to dump:

$arguments[1]

inside the foreach that starts here: https://github.com/adrianbj/TracyDebugger/commit/82e5e286d3bd1795a843c858090dd96bdae1daba#diff-4fa401f5ada8c910a9991f9228078c4bR331

I'd like to know what elements/indexes are actually in that array so I can get an idea of why "caller" may not be there in your situation.

Thanks for helping out.

Share this post


Link to post
Share on other sites

Hi @adrian

Here is the dump. Hope the format is what you wanted.

array(4) { ["findOne"]=> bool(true) ["findAll"]=> bool(true) ["getTotal"]=> bool(false) ["caller"]=> string(9) "pages.get" }
NULL
in .../modules/TracyDebugger/panels/DebugModePanel.php:334
array(4) { ["findOne"]=> bool(true) ["findAll"]=> bool(true) ["getTotal"]=> bool(false) ["caller"]=> string(9) "pages.get" }
NULL
in .../modules/TracyDebugger/panels/DebugModePanel.php:334
array(4) { ["findOne"]=> bool(true) ["findAll"]=> bool(true) ["getTotal"]=> bool(false) ["caller"]=> string(9) "pages.get" }
NULL
in .../modules/TracyDebugger/panels/DebugModePanel.php:334
array(4) { ["findOne"]=> bool(true) ["findAll"]=> bool(true) ["getTotal"]=> bool(false) ["caller"]=> string(9) "pages.get" }
NULL
in .../modules/TracyDebugger/panels/DebugModePanel.php:334
array(4) { ["findOne"]=> bool(true) ["findAll"]=> bool(true) ["getTotal"]=> bool(false) ["caller"]=> string(9) "pages.get" }
NULL
in .../modules/TracyDebugger/panels/DebugModePanel.php:334
array(4) { ["findOne"]=> bool(true) ["findAll"]=> bool(true) ["getTotal"]=> bool(false) ["caller"]=> string(9) "pages.get" }
NULL
in .../modules/TracyDebugger/panels/DebugModePanel.php:334
array(1) { ["caller"]=> string(13) "page.children" }
NULL
in .../modules/TracyDebugger/panels/DebugModePanel.php:334
array(1) { ["caller"]=> string(13) "page.children" }
NULL
in .../modules/TracyDebugger/panels/DebugModePanel.php:334
array(2) { ["caller"]=> string(10) "page.child" ["getTotal"]=> bool(false) }
NULL
in .../modules/TracyDebugger/panels/DebugModePanel.php:334
array(1) { ["caller"]=> string(13) "page.children" }
NULL
in .../modules/TracyDebugger/panels/DebugModePanel.php:334
array(1) { ["caller"]=> string(13) "page.children" }
NULL
in .../modules/TracyDebugger/panels/DebugModePanel.php:334
array(2) { ["findAll"]=> bool(true) ["loadOptions"]=> array(3) { ["pageClass"]=> string(10) "Permission" ["joinSortfield"]=> bool(false) ["joinFields"]=> array(0) { } } }
NULL
in .../modules/TracyDebugger/panels/DebugModePanel.php:334

 

Share this post


Link to post
Share on other sites

Thanks @rick - I have pushed an update that fixes this.

I also decided to show all the argument settings in the Selector Queries section, so it now looks like this:

58f2946204db5_ScreenShot2017-04-16at7_44_14AM.thumb.png.b830dc76a2a52f03d64ff8f09a5ab1c2.png

  • Like 3

Share this post


Link to post
Share on other sites

@adrian,

Updated and workin' great!

Thanks for your efforts!

 

ps. We need a Buy-A-Beer button in this forum!

  • Like 3

Share this post


Link to post
Share on other sites

I love this module!

Maybe it's just me and my weird server, but installing it on ProcessWire 3.0.61 (fresh install) throws the following notices though:

Notice: Undefined index: showDebugBar in /var/www/site/assets/cache/FileCompiler/site/modules/TracyDebugger/TracyDebugger.module on line 544

Warning: in_array() expects parameter 2 to be array, null given in /var/www/site/assets/cache/FileCompiler/site/modules/TracyDebugger/TracyDebugger.module on line 544

They vanish if the modules configuration is saved for the first time.

  • Like 2

Share this post


Link to post
Share on other sites

@adrian,

I have a suggestion. Is there any way to make the results pane of the console scrollable? When code executed in the console produces a long output, the results pane expands vertically and the top (Close) heading is forced above the browser window. There is no way to move the window back down other than clearing the results which shrinks the window back to original size.

  • Like 1

Share this post


Link to post
Share on other sites

Hi @incognito.ms - I am not sure why you are seeing that - I define the "showDebugBar" index here: https://github.com/adrianbj/TracyDebugger/blob/bf9ab88cc9d15e4f0ec06193c30873b7f15af54c/TracyDebugger.module#L150

Is this something that only happens with ProcessWire 3.0., or have you seen it with earlier versions as well? Fixed - see other reply further down.

 

Hi @rick - it should already be scrollable, eg:

590451a07e55e_ScreenShot2017-04-29at6_39_50PM.thumb.png.c9ad808421761dc3e702bd5a1477a605.png

Is the problem always present for you, or are there just some circumstances that cause it not to scroll?

 

Share this post


Link to post
Share on other sites

Hi @adrian, welcome back.

The first image shows the initial console window size and position with a code sample (not yet executed).

td01.jpg.47e1671b6fa6c23faa2737e179761e31.jpg

This image shows the window size has automatically expanded vertically (after executing code) where the 'title bar' is now off screen. 

td02.jpg.eef236d3e0d703d9bd1dde59a8a1e6fa.jpg

I am using chrome (maximized window).

This doesn't prevent me from clicking the console icon (TD's toolbar) to close the window, then click it again to re-open it to display the console within the window boundaries. I can also toggle the browser window size to reset the console display size.

I'm not reporting this as a bug because it doesn't prevent me from continuing, nor does it generate incorrect results. It is just something that I noticed.

  • Like 1

Share this post


Link to post
Share on other sites

Thanks @rick for those screenshots. Unfortunately I am having trouble reproducing at the moment - the console panel is automatically adjusting its height to match the available viewport and the code and results windows are both scrollable and the window title bar is always visible. I assume you are running the latest version of Tracy?

If you notice something specific that causes the title/header bar to be above the viewport, please let me know. In the meantime, I will keep an eye out myself, but as a heads up to you and everyone else here, I am going to be mostly offline for the next 2 months - it's going to be strange being away from PW and the forums for so long.

Cheers,
Adrian

Share this post


Link to post
Share on other sites

@adrian,

It's not a problem, just an idiosyncrasy. lol This is a great module and I just wanted to post an FYI.

PS.
Enjoy your 'time off'! Post pics of the native women from the island when you get a chance! :)

  • Like 1

Share this post


Link to post
Share on other sites

@incognito.ms - I just took a look into that notice and I have fixed it in the latest version - thanks for reporting!

 

  • Like 1

Share this post


Link to post
Share on other sites

Hi @adrian, I have a PHP file that bootstraps PW and I'm calling it from a cron job. When the cron fires I get the following errors relating to Tracy:

[01-May-2017 13:07:01 Pacific/Auckland] PHP Notice:  Undefined index: REQUEST_URI in /home/myaccount/public_html/site/assets/cache/FileCompiler/site/modules/TracyDebugger/TracyDebugger.module on line 1541
[01-May-2017 13:07:01 Pacific/Auckland] PHP Notice:  Undefined index: REQUEST_URI in /home/myaccount/public_html/site/assets/cache/FileCompiler/site/modules/TracyDebugger/TracyDebugger.module on line 233

I also get an error from ProcessWire.php that I've created a separate topic for - I just mention it here in case the issues are related.

Share this post


Link to post
Share on other sites

@Robin S - can you please test with the latest version of Tracy and let me know the current line numbers that are reporting that notice (if any) - those line numbers you are reporting don't seem to match the current version. I fixed something like this a while back (https://github.com/adrianbj/TracyDebugger/commit/8e8309e13c9edf6ad36f0e29b91cc52b77ffc7e1), but maybe there are still some outstanding issues. 

Share this post


Link to post
Share on other sites
44 minutes ago, adrian said:

can you please test with the latest version of Tracy and let me know the current line numbers that are reporting that notice (if any)

After updating Tracy the notices are:

[01-May-2017 20:30:02 Pacific/Auckland] PHP Notice:  Undefined index: REQUEST_URI in /home/myaccount/public_html/site/assets/cache/FileCompiler/site/modules/TracyDebugger/TracyDebugger.module on line 1583
[01-May-2017 20:30:02 Pacific/Auckland] PHP Notice:  Undefined index: REQUEST_URI in /home/myaccount/public_html/site/assets/cache/FileCompiler/site/modules/TracyDebugger/TracyDebugger.module on line 259

 

Share this post


Link to post
Share on other sites

Thanks @Robin S - should be fixed in the latest version. 

Although, I am wondering if perhaps I should be disabling much of Tracy in CLI mode anyway. Maybe just disable the debug bar, but allow for error logging still? Any thoughts?

  • Like 1

Share this post


Link to post
Share on other sites
15 hours ago, adrian said:

Although, I am wondering if perhaps I should be disabling much of Tracy in CLI mode anyway. Maybe just disable the debug bar, but allow for error logging still? Any thoughts?

That sounds sensible. Thanks for the fix.

  • Like 1

Share this post


Link to post
Share on other sites

Just a repeat of part of a message above so hopefully more of you will see it:

I am going to be mostly offline for the next 2 months, starting right now :)

It's going to be strange being away from PW and the forums for so long. Hopefully if anyone has any issues with this (or any of my other modules), some of you who are more experienced might be able to help, or at least let those users know that I am away and will take care of things when I return.

Cheers all!

  • Like 6

Share this post


Link to post
Share on other sites

Hi @adrian, just leaving this here now while I remember for when you are back.

I'm not able to use Tracy inside a ProcessPageEdit hook when the page being edited is a PageTable page (i.e. in the modal window). In /site/ready.php (or /site/init.php)...

$this->addHookBefore('ProcessPageEdit::execute', function($event) {
    bd('testing');
});

2017-05-04_115812.thumb.png.6ab603f81b522f51b7e8018597602963.png

  • Like 2

Share this post


Link to post
Share on other sites
6 hours ago, Robin S said:

Hi @adrian, just leaving this here now while I remember for when you are back.

I'm not able to use Tracy inside a ProcessPageEdit hook when the page being edited is a PageTable page (i.e. in the modal window). In /site/ready.php (or /site/init.php)...


$this->addHookBefore('ProcessPageEdit::execute', function($event) {
    bd('testing');
});

This was bothering me when I was working on this question about PageTables. It appears that Tracy isn't included when page is called via a modal. Check this out

// /site/modules/TracyDebugger/TracyDebugger.module

public function init() {
    // ...

    // EARLY EXITS
    // modals
    if(in_array('regularModal', $this->data['hideDebugBarModals']) && $this->wire('input')->get->modal == '1') return;
    if(in_array('inlineModal', $this->data['hideDebugBarModals']) && $this->wire('input')->get->modal == 'inline') return;
	
    // ...
}

 

We need you @adrian, come back!

  • Like 5

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Gadgetto
      SnipWire - Snipcart integration for ProcessWire
      Snipcart is a powerful, developer-first 3rd party HTML/JavaScript shopping cart platform. SnipWire is the missing link between Snipcart and the content management framework ProcessWire.
      With SnipWire, you can quickly turn any ProcessWire site into a Snipcart online shop. The SnipWire plugin helps you to get your store up and running in no time. Detailed knowledge of the Snipcart system is not required.
      SnipWire is free and open source! A lot of work and effort has gone into development. It would be nice if you could donate an amount to support further development:

      Status update links (inside this thread) for SnipWire development:
      2020-01-19 --> integrated taxes provider finished (+ very flexible shipping taxes handling) 2020-01-14 --> new date range picker, discount editor, order notifiactions, order statuses, and more ... 2019-11-15 --> orders filter, order details, download + resend invoices, refunds 2019-10-18 --> list filters, REST API improvements, new docs platform, and more ... 2019-08-08 --> dashboard interface, currency selector, managing Orders, Customers and Products, Added a WireTabs, refinded caching behavior 2019-06-15 --> taxes provider, shop templates update, multiCURL implementation, and more ... 2019-06-02 --> FieldtypeSnipWireTaxSelector 2019-05-25 --> SnipWire will be free and open source If you are interested, you can test the current state of development:
      https://github.com/gadgetto/SnipWire
      If you like, you can also submit feature requests and suggestions for improvement. I also accept pull requests.
      ---- INITIAL POST FROM 2019-05-25 ----
      I wanted to let you know that I am currently working on a new ProcessWire module that fully integrates the Snipcart Shopping Cart System into ProcessWire. (this is a customer project, so I had to postpone the development of my other module GroupMailer).
      The new module SnipWire offers full integration of the Snipcart Shopping Cart System into ProcessWire.
      Here are some highlights:
      simple setup with (optional) pre-installed templates, product fields, sample products (quasi a complete shop system to get started immediately) store dashboard with all data from the snipcart system (no change to the snipcart dashboard itself required) Integrated REST API for controlling and querying snipcart data webhooks to trigger events from Snipcart (new order, new customer, etc.) multi currency support self-defined/configurable tax rates etc. Development is already well advanced and I plan to release the module in the next 2-3 months.
      I'm not sure yet if this will be a "Pro" module or if it will be made available for free.
      I would be grateful for suggestions and hints!
      Please have a look at the screenshots to get an idea what I'm talking about (open spoiler):
      (Please note: these screenshots are from an early development state of SnipWire. To see actual screens please have a look at later posts below!)
       
    • By d'Hinnisdaël
      Happy new year, everybody 🥬
      I've been sitting on this Dashboard module I made for a client and finally came around to cleaning it up and releasing it to the wider public. This is how it looks.
      ProcessWire Dashboard

      If anyone is interested in trying this out, please go ahead! I'd love to get some feedback on it. If this proves useful and survives some real-world testing, I'll add this to the module directory.
      Download
      You can find the latest release on Github.
      Documentation
      Check out the documentation to get started. This is where you'll find information about included panel types and configuration options.
      Custom Panels
      My goal was to make it really simple to create custom panels. The easiest way to do that is to use the panel type template and have it render a file in your templates folder. This might be enough for 80% of all use cases. For anything more complex (FormBuilder submissions? Comments? Live chat?), you can add new panel types by creating modules that extend the DashboardPanel base class. Check out the documentation on custom panels or take a look at the HelloWorld panel to get started. I'm happy to merge any user-created modules into the main repo if they might be useful to more than a few people.
       Disclaimer
      This is a pre-release version. Please treat it as such — don't install it on production sites. Just making sure 🍇
      Roadmap
      These are the things I'm looking to implement myself at some point. The wishlist is a lot longer, but those are the 80/20 items that I probably won't regret spending time on.
      Improve documentation & add examples ⚙️ Panel types Google Analytics ⚙️ Add new page  🔥 Drafts 🔥 At a glance / Page counter 404s  Layout options Render multiple tabs per panel panel groups with heading and spacing between ✅ panel wrappers as grid item (e.g. stacked notices) ✅ Admin themes support AdminThemeReno and AdminThemeDefault ✅ Shortcuts panel add a table layout with icon, title & summary ✅ Chart panel add default styles for common chart types ✅ load chart data from JS file (currently passed as PHP array) Collection panel support image columns ✅ add buttons: view all & add new ✅
    • By Robin S
      This module is inspired by and similar to the Template Stubs module. The author of that module has not been active in the PW community for several years now and parts of the code for that module didn't make sense to me, so I decided to create my own module. Auto Template Stubs has only been tested with PhpStorm because that is the IDE that I use.
      Auto Template Stubs
      Automatically creates stub files for templates when fields or fieldgroups are saved.
      Stub files are useful if you are using an IDE (e.g. PhpStorm) that provides code assistance - the stub files let the IDE know what fields exist in each template and what data type each field returns. Depending on your IDE's features you get benefits such as code completion for field names as you type, type inference, inspection, documentation, etc.
      Installation
      Install the Auto Template Stubs module.
      Configuration
      You can change the class name prefix setting in the module config if you like. It's good to use a class name prefix because it reduces the chance that the class name will clash with an existing class name.
      The directory path used to store the stub files is configurable.
      There is a checkbox to manually trigger the regeneration of all stub files if needed.
      Usage
      Add a line near the top of each of your template files to tell your IDE what stub class name to associate with the $page variable within the template file. For example, with the default class name prefix you would add the following line at the top of the home.php template file:
      /** @var tpl_home $page */ Now enjoy code completion, etc, in your IDE.

      Adding data types for non-core Fieldtype modules
      The module includes the data types returned by all the core Fieldtype modules. If you want to add data types returned by one or more non-core Fieldtype modules then you can hook the AutoTemplateStubs::getReturnTypes() method. For example, in /site/ready.php:
      // Add data types for some non-core Fieldtype modules $wire->addHookAfter('AutoTemplateStubs::getReturnTypes', function(HookEvent $event) { $extra_types = [ 'FieldtypeDecimal' => 'string', 'FieldtypeLeafletMapMarker' => 'LeafletMapMarker', 'FieldtypeRepeaterMatrix' => 'RepeaterMatrixPageArray', 'FieldtypeTable' => 'TableRows', ]; $event->return = $event->return + $extra_types; }); Credits
      Inspired by and much credit to the Template Stubs module by mindplay.dk.
       
      https://github.com/Toutouwai/AutoTemplateStubs
      https://modules.processwire.com/modules/auto-template-stubs/
    • By Mike Rockett
      Jumplinks for ProcessWire
      Release: 1.5.60
      Composer: rockett/jumplinks
      ⚠️ NOTICE: 1.5.60 is an important security patch-release for an XSS vulnerability discovered by @phlp. It's HIGHLY RECOMMENDED that all Jumplinks users update to the latest version as soon as possible.
      Jumplinks is an enhanced version of the original ProcessRedirects by Antti Peisa.
      The Process module manages your permanent and temporary redirects (we'll call these "jumplinks" from now on, unless in reference to redirects from another module), useful for when you're migrating over to ProcessWire from another system/platform. Each jumplink supports wildcards, shortening the time needed to create them.
      Unlike similar modules for other platforms, wildcards in Jumplinks are much easier to work with, as Regular Expressions are not fully exposed. Instead, parameters wrapped in curly braces are used - these are described in the documentation.
      Under Development: 2.0, to be powered by FastRoute
      As of version 1.5.0, Jumplinks requires at least ProcessWire 2.6.1 to run.
      View on GitLab
      Download via the Modules Directory
      Read the docs
      Features
      The most prominent features include:
      Basic jumplinks (from one fixed route to another) Parameter-based wildcards with "Smart" equivalents Mapping Collections (for converting ID-based routes to their named-equivalents without the need to create multiple jumplinks) Destination Selectors (for finding and redirecting to pages containing legacy location information) Timed Activation (activate and/or deactivate jumplinks at specific times) 404-Monitor (for creating jumplinks based on 404 hits) Additionally, the following features may come in handy:
      Stale jumplink management Legacy domain support for slow migrations An importer (from CSV or ProcessRedirects) Feedback & Feature Requests
      I’d love to know what you think of this module. Please provide some feedback on the module as a whole, or even regarding smaller things that make it whole. Also, please feel free to submit feature requests and their use-cases.
      Note: Features requested so far have been added to the to-do list, and will be added to 2.0, and not the current dev/master branches.
      Open Source

      Jumplinks is an open-source project, and is free to use. In fact, Jumplinks will always be open-source, and will always remain free to use. Forever. If you would like to support the development of Jumplinks, please consider making a small donation via PayPal.
      Enjoy! 🙂
    • By Robin S
      Add Image URLs
      Allows images/files to be added to Image/File fields by pasting URLs.

      Usage
      Install the Add Image URLs module.
      A "Paste URLs" button will be added to all image and file fields. Use the button to show a textarea where URLs may be pasted, one per line. Images/files are added when the page is saved.
       
      https://github.com/Toutouwai/AddImageUrls
      https://modules.processwire.com/modules/add-image-urls/
×
×
  • Create New...