Jump to content
adrian

Tracy Debugger

Recommended Posts

Yep, that was fix.  Forgot that step.  Thanks for the quick help

  • Like 1

Share this post


Link to post
Share on other sites

Hi @adrian, I'm getting a curious error that wasn't there before. Some images on a site using $config->pagefileSecure = true; aren't being loaded anymore (worked fine before, not sure what changed). The images are being served by ProcessWire. When I open the image URL directly, I get this exception (see attachment). The image field is inside a Repeater Matrix. When I turn off Tracy Debugger, the error goes away. Not sure if it's a bug with Tracy or if it's just surfacing a deeper problem. Any idea what might be causing this?

Quote

SERVER DETAILS
ProcessWire: 3.0.155
PHP: 7.4.7
Webserver: Apache
MySQL Server: 5.5.5-10.1.44-MariaDB-0ubuntu0.18.04.1
MySQL Client: mysqlnd 7.4.7

 

 

pw-error-message.png

Share this post


Link to post
Share on other sites

Hi @MoritzLost - what version of Tracy are you running? Trying to figure out what is on line 409 as highlighted in the call stack. It doesn't seem to me like it's the latest version, but I could be wrong.

What changed that started the error? Did you update something?

 

  • Like 1

Share this post


Link to post
Share on other sites

@adrian I'll have to get back to you on monday ^^ Though when I got the error, I tried updating to the latest version and the error remained. Not 100% sure that the screenshot was taken with the current version though, sorry 😅 I haven't really changed much ... came back to the site after a week and the error was there, not sure when it started 😕 I'll try to find out more when I'm in the office ...

Share this post


Link to post
Share on other sites

Hello,

my RequestInfoPanel shows this error on all of my projects:

image.thumb.png.4de53801a6e1ff05c01689d20834491e.png

I have ProcessWire 3.0.161 dev and Tracy Debugger 4.21.17. I am on macOS with MAMP PRO 5.7.

Has anybody an idea what causes this error?

Thank you @adrian again for your great work with this module. 😀👍

Regards, Andreas

  • Like 1

Share this post


Link to post
Share on other sites

Hi @AndZyk - please try the latest version just committed.

  • Like 2

Share this post


Link to post
Share on other sites

This solves the error in my RequestInfoPanel, thank you. 😀

  • Like 1

Share this post


Link to post
Share on other sites

I just wanted to try out a barDumpBig. But I get an undefined function error:

<?php
barDumpBig($largeObject);
bdb($largeObject);

Am I missing something? I have never used it before. 😀

Regards, Andreas

Share this post


Link to post
Share on other sites

See the settings:

txiYaUs.png

  • Like 3

Share this post


Link to post
Share on other sites

Thank you. 👍

Of course I haven't looked there. 🙄

Share this post


Link to post
Share on other sites

So I am at a total loss. I was in the middle of working on a draft site and had recently updated Tracy to the latest version on one of them 4.21.19 from 4.21.17.

I was in the process of revamping the site from delayed output to markup regions and then when I went to preview (which I hadn't done) the screen was blank with the exception of Tracy. No source, no nothing. No errors. Tracy reported the page object loaded, all the children, etc.

I reverted to the old version of the templates. No difference. I compared it with another copy of the same site on a different domain that still had 4.21.17 installed. Front-end looked fine.

I updated the second site to 4.21.19 - blank screen on the front end, no errors being shown, nothing.

All else being equal, I have to assume there's something in the change from 4.21.17 to 19 - but I purged 19 from the site/modules, cleansed the copies from the FileCompiler cache directory - got rid of everything I could to remove it.

Both site are still showing blank with nothing in the PHP logs and no displayed errors. Backend still works perfectly fine.

I don't really know what to do next, but I'm pretty frustrated about the situation. If I had error codes to work with that would at least be something. If there are errors (which I could create) Tracy was reporting and displaying them. But I can't get the site templates to output anything. Not even replacing with generic echo.

I'm running 3.0.161.

Is there something in the page rendering hooks that got installed that I might need to manually remove? Any ideas on how I can get my sites back? At the moment I am probably going to pull down another site made with the same template and try doing a diff across the site/wire directories.

I don't really know how to troubleshoot a situation where no errors appear, but no markup either.

Share this post


Link to post
Share on other sites

Hi @gornycreative - sorry you're have a rough time with this. Did you properly uninstall 4.21.19, or did you just remove the files?

I know you said you aren't getting any errors, but are you talking about PHP errors only? Does the browser dev console show any JS errors? What about errors in the apache logs?

Have you done a modules refresh and clear session & cookies from the Processwire Info panel in Tracy?

Do the sites work in a different browser / incognito window?

Share this post


Link to post
Share on other sites

It's really weird. And I'm afraid to experiment too much more on other working sites as I don't want to break anything further.

I uninstalled 4.21.19 from the modules area, cleared all cache and then double checked the asset cache FileCompiler area. Turned off opcache in PHP. turned off as much caching as I could find in modules. Removed all traces of files. Purged CloudFlare cache and made sure dev mode was on.

I've turned off prepend and append and even substituted a very basic HTML file as the output template with no look-ups.

There are no PHP or LiteSpeed errors logged. There's nothing in the console.

I decided after cleaning out the system I'd reinstall Tracy fresh. What I don't understand is that it is as if the PHP is working, but the HTML is just not getting output. With devtools open there not alot going on, but Tracy has an HTML DOM that it is sitting in, which is even stranger.

I know you've pushed priority up on loading - perhaps it is possible there is a module that is failing to load immediately after? Maybe I can look at the modules table in adminer and sort by priority?

It's absolutely nuts - when I look at source for the loaded page all I get is <!--tracy debugger bar --> and then the script tags. That's in an incognito window.

Chrome puts it into a makeshift DOM but firefox has no idea what to do with it. There it is just a blank page.

 

Share this post


Link to post
Share on other sites

What I can't fathom is that you uninstalled Tracy and it's still a problem. It suggests to me that it's not Tracy related.

I am running the latest version on several different sites and different servers without any problems.

2 hours ago, gornycreative said:

I was in the process of revamping the site from delayed output to markup regions

This sounds like the likely issue - I know you said you put the old versions of the templates back and they are still broken, but with Tracy uninstalled and its folder removed, it can't be impacting things anymore.

Any chance you accidentally messed with the htaccess file?

Share this post


Link to post
Share on other sites

The thing is, I had another site built using the exact same basic template setup as the original. All that I did to that site was upgrade it from 4.21.17 to 4.21.19. Nothing else on that site was touched - it went from loading the templates fine to a blank screen with . I'd rather not sacrifice another development site to prove the point without really understanding what changed between versions.

Are you running this on 161 or 148?

The strange thing is - I set the request logger on for the site - the HTML is getting passed in the response. I have no idea why the browser is not rendering the code. Chrome is up to date (which I know can be a problem sometimes).

Share this post


Link to post
Share on other sites
Just now, gornycreative said:

Are you running this on 161 or 148?

Local dev is 161 (actually just updated to today's commits). At the moment, the live sites vary between 156 and 160.

Share this post


Link to post
Share on other sites

Okay.

Regarding the switch, there was no need to touch the htaccess at all.

I had a single file that included a bunch of variable sets that were global (settings factory stuff) and a few variables set from the home page (gotten through pages() ) - none of the things I pulled required access to page() and those got moved to _init.php

Everything else got moved to _main.php - which at the time was just a bunch of components in a layout that I was going to pick and choose and render in the main template file into regions - this was not supposed to be anything super crazy or elaborate.

Then, when I turned off the prepend/append and switched to a plain jane HTML hello world scenario and still got a blank page, I got even more frustrated. I split a text file into three text files - pretty routine stuff. And boom.

I do agree with you that it doesn't make sense for the HTML to still not render after uninstalling Tracy and putting the original templates back if Tracy was the problem.

I will move on from this I guess. If somehow you come across a situation where you run into the same thing, please let me know.

Share this post


Link to post
Share on other sites
23 minutes ago, gornycreative said:

I will move on from this I guess.

How can you move on at the moment - I thought your sites were still broken?

Share this post


Link to post
Share on other sites

So I found another site built off the same template that had not had Tracy installed prior. After clearing the module cache and letting it rebuild, the site broke - so it must be another module that needs some rewarming from 161.

39 minutes ago, adrian said:

How can you move on at the moment - I thought your sites were still broken?

Moving on meaning I need to start dropping other modules until the site works, since Tracy doesn't logically seem to be the issue.

Share this post


Link to post
Share on other sites

I found the culprit. It wasn't Tracy. It was another module I probably should have suspected since it has never really worked out that well for me - despite being a good idea.

Thanks for your effort in trying to help me debug this - coincidences and panic are a lousy combination.

  • Like 1

Share this post


Link to post
Share on other sites
8 hours ago, gornycreative said:

It was another module

Is it a publicly available module? If so, it would be good to know which one.

Share this post


Link to post
Share on other sites

Oh sorry - yes and I raised the issue on their module support thread.

Template Engine Factory - I'm thinking it might be related to the auto compilation switch function - I haven't dug into it because I am no longer really interested in using Smarty or Twig.

Share this post


Link to post
Share on other sites

Hi @adrian could you please add a $session->redirect after the email-sent-flag has been reset? I've had it several times the last days that I had a tab oben and got an error "file could not be removed" on reload which was caused by a ?tracy-clear-email-sent-flag-whatsoever=1 that was still left in the url.

Thx 🙂 

  • Like 1

Share this post


Link to post
Share on other sites

@bernhard - good idea. Fixed in the latest version.

  • Thanks 1

Share this post


Link to post
Share on other sites

Hi Adrian
I was updating my site a few minutes ago and it started displaying a 500 error. When I turned on notifications, I saw the following error.

Fatal error: Cannot declare class TracyDebugger, because the name is already in use in /home/p752009485/public_html/site/assets/cache/FileCompiler/site/modules/TracyDebugger/TracyDebugger.module.php on line 19

 

Is it ok to manually remove the Module somehow?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By teppo
      Needed a really simple solution to embed audio files within page content and couldn't find a module for that, so here we go. Textformatter Audio Embed works a bit like Textformatter Video Embed, converting this:
      <p>https://www.domain.tld/path/to/file.mp3</p> Into this:
      <audio controls class="TextformatterAudioEmbed"> <source src="https://www.domain.tld/path/to/file.mp3" type="audio/mpeg"> </audio> The audio element has pretty good browser support, so quite often this should be enough to get things rolling 🙂
      GitHub repository: https://github.com/teppokoivula/TextformatterAudioEmbed Modules directory: https://modules.processwire.com/modules/textformatter-audio-embed/
    • By Richard Jedlička
      Tense    
      Tense (Test ENvironment Setup & Execution) is a command-line tool to easily run tests agains multiple versions of ProcessWire CMF.
      Are you building a module, or a template and you need to make sure it works in all supported ProcessWire versions? Then Tense is exactly what you need. Write the tests in any testing framework, tell Tense which ProcessWire versions you are interested in and it will do the rest for you.

      See example or see usage in a real project.
      How to use?
      1. Install it: 
      composer global require uiii/tense 2. Create tense.yml config:
      tense init 3. Run it:
      tense run  
      For detailed instructions see Github page: https://github.com/uiii/tense
       
      This is made possible thanks to the great wireshell tool by @justb3a, @marcus and others.
       
      What do you think about it? Do you find it useful? Do you have some idea? Did you find some bug? Tell me you opinion. Write it here or in the issue tracker.
    • By Chris Bennett
      Hi all, I am going round and round in circles and would greatly appreciate if anyone can point me in the right direction.
      I am sure I am doing something dumb, or missing something I should know, but don't. Story of my life 😉

      Playing round with a module and my basic problem is I want to upload an image and also use InputfieldMarkup and other Inputfields.
      Going back and forth between trying an api generated page defining Fieldgroup, Template, Fields, Page and the InputfieldWrapper method.

      InputfieldWrapper method works great for all the markup stuff, but I just can't wrap my head around what I need to do to save the image to the database.
      Can generate a Field for it (thanks to the api investigations) but not sure what I need to do to link the Inputfield to that. Tried a lot of stuff from various threads, of varying dates without luck.
      Undoubtedly not helped by me not knowing enough.

      Defining Fieldgroup etc through the api seems nice and clean and works great for the images but I can't wrap my head around how/if I can add/append/hook the InputfieldWrapper/InputfieldMarkup stuff I'd like to include on that template as well. Not even sure if it should be where it is on ___install with the Fieldtype stuff or later on . Not getting Tracy errors, just nothing seems to happen.
      If anyone has any ideas or can point me in the right direction, that would be great because at the moment I am stumbling round in the dark.
       
      public function ___install() { parent::___install(); $page = $this->pages->get('name='.self::PAGE_NAME); if (!$page->id) { // Create fieldgroup, template, fields and page // Create new fieldgroup $fmFieldgroup = new Fieldgroup(); $fmFieldgroup->name = MODULE_NAME.'-fieldgroup'; $fmFieldgroup->add($this->fields->get('title')); // needed title field $fmFieldgroup->save(); // Create new template using the fieldgroup $fmTemplate = new Template(); $fmTemplate->name = MODULE_NAME; $fmTemplate->fieldgroup = $fmFieldgroup; $fmTemplate->noSettings = 1; $fmTemplate->noChildren = 1; $fmTemplate->allowNewPages = 0; $fmTemplate->tabContent = MODULE_NAME; $fmTemplate->noChangeTemplate = 1; $fmTemplate->setIcon(ICON); $fmTemplate->save(); // Favicon source $fmField = new Field(); $fmField->type = $this->modules->get("FieldtypeImage"); $fmField->name = 'fmFavicon'; $fmField->label = 'Favicon'; $fmField->focusMode = 'off'; $fmField->gridMode = 'grid'; $fmField->extensions = 'svg png'; $fmField->columnWidth = 50; $fmField->collapsed = Inputfield::collapsedNever; $fmField->setIcon(ICON); $fmField->addTag(MODULE_NAME); $fmField->save(); $fmFieldgroup->add($fmField); // Favicon Silhouette source $fmField = new Field(); $fmField->type = $this->modules->get("FieldtypeImage"); $fmField->name = 'fmFaviconSilhouette'; $fmField->label = 'SVG Silhouette'; $fmField->notes = 'When creating a silhouette/mask svg version for Safari Pinned Tabs and Windows Tiles, we recommend setting your viewbox for 0 0 16 16, as this is what Apple requires. In many cases, the easiest way to do this in something like illustrator is a sacrificial rectangle with no fill, and no stroke at 16 x 16. This forces the desired viewbox and can then be discarded easily using something as simple as notepad. Easy is good, especially when you get the result you want without a lot of hassle.'; $fmField->focusMode = 'off'; $fmField->extensions = 'svg'; $fmField->columnWidth = 50; $fmField->collapsed = Inputfield::collapsedNever; $fmField->setIcon(ICON); $fmField->addTag(MODULE_NAME); $fmField->save(); $fmFieldgroup->add($fmField); // Create: Open Settings Tab $tabOpener = new Field(); $tabOpener->type = new FieldtypeFieldsetTabOpen(); $tabOpener->name = 'fmTab1'; $tabOpener->label = "Favicon Settings"; $tabOpener->collapsed = Inputfield::collapsedNever; $tabOpener->addTag(MODULE_NAME); $tabOpener->save(); // Create: Close Settings Tab $tabCloser = new Field(); $tabCloser->type = new FieldtypeFieldsetClose; $tabCloser->name = 'fmTab1' . FieldtypeFieldsetTabOpen::fieldsetCloseIdentifier; $tabCloser->label = "Close open tab"; $tabCloser->addTag(MODULE_NAME); $tabCloser->save(); // Create: Opens wrapper for Favicon Folder Name $filesOpener = new Field(); $filesOpener->type = new FieldtypeFieldsetOpen(); $filesOpener->name = 'fmOpenFolderName'; $filesOpener->label = 'Wrap Folder Name'; $filesOpener->class = 'inline'; $filesOpener->collapsed = Inputfield::collapsedNever; $filesOpener->addTag(MODULE_NAME); $filesOpener->save(); // Create: Close wrapper for Favicon Folder Name $filesCloser = new Field(); $filesCloser->type = new FieldtypeFieldsetClose(); $filesCloser->name = 'fmOpenFolderName' . FieldtypeFieldsetOpen::fieldsetCloseIdentifier; $filesCloser->label = "Close open fieldset"; $filesCloser->addTag(MODULE_NAME); $filesCloser->save(); // Create Favicon Folder Name $fmField = new Field(); $fmField->type = $this->modules->get("FieldtypeText"); $fmField->name = 'folderName'; $fmField->label = 'Favicon Folder:'; $fmField->description = $this->config->urls->files; $fmField->placeholder = 'Destination Folder for your generated favicons, webmanifest and browserconfig'; $fmField->columnWidth = 100; $fmField->collapsed = Inputfield::collapsedNever; $fmField->setIcon('folder'); $fmField->addTag(MODULE_NAME); $fmField->save(); $fmFieldgroup->add($tabOpener); $fmFieldgroup->add($filesOpener); $fmFieldgroup->add($fmField); $fmFieldgroup->add($filesCloser); $fmFieldgroup->add($tabCloser); $fmFieldgroup->save(); /////////////////////////////////////////////////////////////// // Experimental Markup Tests $wrapperFaviconMagic = new InputfieldWrapper(); $wrapperFaviconMagic->attr('id','faviconMagicWrapper'); $wrapperFaviconMagic->attr('title',$this->_('Favicon Magic')); // field show info what $field = $this->modules->get('InputfieldMarkup'); $field->name = 'use'; $field->label = __('How do I use it?'); $field->collapsed = Inputfield::collapsedNever; $field->icon('info'); $field->attr('value', 'Does this even begin to vaguely work?'); $field->columnWidth = 50; $wrapperFaviconMagic->add($field); $fmTemplate->fields->add($wrapperFaviconMagic); $fmTemplate->fields->save(); ///////////////////////////////////////////////////////////// // Create page $page = $this->wire( new Page() ); $page->template = MODULE_NAME; $page->parent = $this->wire('pages')->get('/'); $page->addStatus(Page::statusHidden); $page->title = 'Favicons'; $page->name = self::PAGE_NAME; $page->process = $this; $page->save(); } }  
    • By Sebi
      Since it's featured in ProcessWire Weekly #310, now is the time to make it official:
      Here is Twack!
      I really like the following introduction from ProcessWire Weekly, so I hope it is ok if I use it here, too. Look at the project's README for more details!
      Twack is a new — or rather newish — third party module for ProcessWire that provides support for reusable components in an Angular-inspired way. Twack is implemented as an installable module, and a collection of helper and base classes. Key concepts introduced by this module are:
      Components, which have separate views and controllers. Views are simple PHP files that handle the output for the component, whereas controllers extend the TwackComponent base class and provide additional data handling capabilities. Services, which are singletons that provide a shared service where components can request data. The README for Twack uses a NewsService, which returns data related to news items, as an example of a service. Twack components are designed for reusability and encapsulating a set of features for easy maintainability, can handle hierarchical or recursive use (child components), and are simple to integrate with an existing site — even when said site wasn't originally developed with Twack.
      A very basic Twack component view could look something like this:
      <?php namespace ProcessWire; ?> <h1>Hello World!</h1> And here's how you could render it via the API:
      <?php namespace Processwire; $twack = $modules->get('Twack'); $hello = $twack->getNewComponent('HelloWorld'); ?> <html> <head> <title>Hello World</title> </head> <body> <?= $hello->render() ?> </body> </html> Now, just to add a bit more context, here's a simple component controller:
      <?php namespace ProcessWire; class HelloWorld extends TwackComponent { public function __construct($args) { parent::__construct($args); $this->title = 'Hello World!'; if(isset($args['title'])) { $this->title = $args['title']; } } } As you can see, there's not a whole lot new stuff to learn here if you'd like to give Twack a try in one of your projects. The Twack README provides a really informative and easy to follow introduction to all the key concepts (as well as some additional examples) so be sure to check that out before getting started. 
      Twack is in development for several years and I use it for every new project I build. Also integrated is an easy to handle workflow to make outputs as JSON, so it can be used to build responses for a REST-api as well. I will work that out in one section in the readme as well. 
      If you want to see the module in an actual project, I have published the code of www.musical-fabrik.de in a repository. It runs completely with Twack and has an app-endpoint with ajax-output as well.
      I really look forward to hear, what you think of Twack🥳!
      Features Installation Usage Quickstart: Creating a component Naming conventions & component variants Component Parameters directory page parameters viewname Asset handling Services Named components Global components Ajax-Output Configuration Versioning License Changelog
    • By Robin S
      Page Reference Default Value
      Most ProcessWire core inputfield types that can be used with a Page Reference field support a "Default value" setting. This module extends support for default values to the following core inputfield types:
      Page List Select Page List Select Multiple Page Autocomplete (single and multiple) Seeing as these inputfield types only support the selection of pages a Page List Select / Page List Select Multiple is used for defining the default value instead of the Text / Textarea field used by the core for other inputfield types. This makes defining a default value a bit more user-friendly.
      Note that as per the core "Default value" setting, the Page Reference field must be set to "required" in order for the default value to be used.
      Screenshot

       
      https://github.com/Toutouwai/PageReferenceDefaultValue
      https://modules.processwire.com/modules/page-reference-default-value/
×
×
  • Create New...