Coder Social home page Coder Social logo

devel-camelcadedb's People

Contributors

dependabot[bot] avatar henkpoley avatar hurricup avatar mbarbon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

devel-camelcadedb's Issues

Handle breakpoints to compile-time code

At the moment, we are loading breakpoints before file been compiled and load_handler invoked after START phase, so those breakpoints missed.

Howewer, breakpoints in other files (not main, works fine)

Debugger displays wrong lexical and global variables

Because of references mess, we show @_ and lexicals/globals differently.

Reproduction example (put a breakpoint at say 1;

use strict;
use warnings FATAL => 'all';
use v5.10;

my $scalar = 'test';
say $scalar;
my $scalar_ref = \$scalar;
say $scalar_ref;
my $scalar_ref_ref = \$scalar_ref;
say $scalar_ref_ref;

my @array = ('tests');
say @array;
my $array_ref = \@array;
say $array_ref;
my $array_ref_ref = \$array_ref;
say $array_ref_ref;

my %hash = (key => 'val');
say %hash;
my $hash_ref = \%hash;
say $hash_ref;
my $hash_ref_ref = \$hash_ref;
say $hash_ref_ref;

my $glob = *STDOUT;
say STDOUT $glob;
my $glob_ref = \$glob;
say $glob_ref;
my $glob_ref_ref = \$glob_ref;
say $glob_ref_ref;

my $code = sub{}; # actually a ref
say $code;
my $code_ref = \$code;
say $code_ref;
my $code_ref_ref = \$code_ref;
say $code_ref_ref;

sub something {
    say 1;
}

something(
    $scalar, $scalar_ref, $scalar_ref_ref,
    @array, $array_ref, $array_ref_ref,
    %hash, $hash_ref, $hash_ref_ref,
    $glob, $glob_ref, $glob_ref_ref,
    $code, $code_ref, $code_ref_ref
);

Expected: same results for lexical vars and something arguments.
Actually: lexical and globals has another level of reference. Because peek_my and peek_our returns names and references, not values (not possible to return value of array or hash.

Devel::Camelcadedb version 2017.1 is not compatible

I have installed the Devel::Camelcadedb and it's version is 2017.1 but the debugger show me an error

1:40 Incorrect Devel::Camelcadedb version: Current plugin version requires Devel::Camelcadedb version 1.6.1.x, but we've got 2017.1. Please install appropriate version from CPAN.

Can you fix this problem?

Consider re-working reference squashing

We should not probably squash a multiple references. Only one level: Ref to non-ref
Otherwise we should provide expandable node.
This will allow us to to avoid necessity to control cyclic references in debugger and may improve UX

Use of uninitialized value within @lines in join or string at /usr/local/share/perl5/Devel/Camelcadedb.pm line 351.

When trying to debug this remote file:
Manager.pm.txt
the debugger return this file:
Manager.out.txt

In the output file a lot of line are missing and for this reason breakpoints and steps are not mapped corrected by the IDEA.

On the server side the debugger is showing me this error:
Use of uninitialized value within @lines in join or string at /usr/local/share/perl5/Devel/Camelcadedb.pm line 351.

For now i have found a workaround. I have add this line before the line 351 of the file Camelcadedb.pm

sub _get_file_source_by_file_id
{
    my ($file_id) = @_;
    $_source_been_sent{$file_id} = 1;
    {
        no strict 'refs';
        _report "Getting source of main::_<$file_id" if $_dev_mode;
        my @lines = @{"main::_<$file_id"};
        @lines = map { !$_ ? "\n" : $_ } @lines;
        shift @lines;
        return _to_utf8( join '', @lines );
    }
}
@lines = map { !$_ ? "\n" : $_ } @lines;

but this only return a file with the correct line number but in the output file there are still some that are displayed as empty line but their aren't.

Debugger stops in unexpected places

For some internal perl reasons, even when we set mode to start at first breakpint, we stop in other places, like use something.
E.g. when running tests, we start in INIT block of Builder.pm

It is not critical, but pretty annoying.
To fix this we need to make tests first.

Can't locate Devel/Camelcadedb.pm

  • IDE name and version, including build, (e.g. #IU-143.2370, available in Help: About menu)
  • Perl5 plugin version (available in File: Settings: Plugins menu)
  • Devel::Camelcadedb module version (see cpan -D Devel::Camelcadedb)
  • JRE version (e.g. Oracle 1.8.0_91-b14, see java --version)
  • Perl version (e.g. Strawberry Perl (v5.22.0) built for MSWin32-x64-multi-thread, see perl -v)

https://imgur.com/gallery/ryjcCJ6

  • Your OS name and version

Windows 7 Enterprise

When trying to debug a simple script like this one:

#!/usr/bin/perl
use strict;
use warnings;

print "hi NAME\r\n";
print "hi NAME\r\n";

I am getting this error:

Listening on localhost:51187...
C:\Dwimperl\perl\bin\perl.exe -d:Camelcadedb C:\mpath\test.pl
Can't locate Devel/Camelcadedb.pm in @inc (@inc contains: C:/Dwimperl/perl/site/lib C:/Dwimperl/perl/vendor/lib C:/Dwimperl/perl/lib .).
BEGIN failed--compilation aborted.

Process finished with exit code 2
Disconnected

Can you tell me what's wrong with Camelcadedb.pm?

Use weak references for internal caches

Initial idea was to support refcount and use weak references for internal caches.
But for now it's just normal one. May hit at some point.
We need to understand the lifetime of the cache and weaken refs if necessary.

Implement breakpoints setting flag

Currently we are using bruteforce breakpoints setting, that are super-reliable but providing too large overhead.
Basically, we need to make event-driven flag for attempting to set a breakpoint.

debugger can't run with taint mode on

When debugging remotely on debian jessie (currently perl v5.20.2), with the -T (taint mode) flag enabled, the program will exit with the following error:

AH01215: Insecure dependency in connect while running with -T switch at
/usr/lib/x86_64-linux-gnu/perl/5.20/IO/Socket.pm line 114.

This is because perl considers the PERL5_DEBUG_HOST and PERL5_DEBUG_PORT environment variables to be tainted. It would be good to have the option of untainting just these variables, so that code could still still be debugged with taint mode on.

The code in the Devel::Camelcadedb module that causes the error is where the IO::Socket::INET->new function is called when PERL5_DEBUG_ROLE is set to "client" (around line 1717 in version 1.6.1.6 of the module). I have tested copying the values from the PERL5_DEBUG_HOST and PERL5_DEBUG_PORT to new variables (using a regex to untaint them), and passing those variables to the IO::Socket::INET->new call, rather than the environment variables. Doing so fixes the problem.

Taint mode is still a useful tool for making potential security problems more obvious, so I think it would be good to make it possible for Camelcade to work when remote debugging with taint mode on.

Debugger messes up SQLite DBD handle

from @mradile:
I am using DBD::SQLite in my code with "PRAGMA foreign_keys =1".

When using the Debugger (remote debugging a script) the following statements fail:

$dbh->do("PRAGMA foreign_keys = 1"); 
my $res = $dbh->selectall_arrayref("PRAGMA foreign_keys");
unless ($res && $res->[0] && !empty($res->[0]->[0])) {
    die "Failed!";
}

"Compilation failed in require" error attempting to debug perl script

Getting the following messages when trying to debug a perl script with IntelliJ:

Listening on localhost:55083...
/usr/bin/perl -d:Camelcadedb /Users/bwinslow/git/bitbucket/agent-zero-service/appserverScripts/test_array.pl
(1)Connecting to the IDE from process 46666 at localhost:55083...
Connected
Disconnected
Connection closed at /Library/Perl/5.18/Devel/Camelcadedb.pm line 1296.
Compilation failed in require.
BEGIN failed--compilation aborted.

Process finished with exit code 255

IDE name and version: Intellij IDEA 2018.1
Perl plugin: 2018.1.2
Devel::Camelcadedb: v2019.1
Java: Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
Perl: This is perl 5, version 18, subversion 2 (v5.18.2) built for darwin-thread-multi-2level
OS: macOS High Sierra version 10.13.6

panic: attempt to copy freed scalar in Camelcadedb.pm line 1607

Got this error sometimes:

panic: attempt to copy freed scalar 7f1becbcb880 to 7f1bd2ad0078 at /home/elwood/perl5/lib/perl5/Devel/Camelcadedb.pm line 1607.

IDE version:

IntelliJ IDEA 2017.2.3
Build #IU-172.3968.16, built on August 22, 2017

JRE: 1.8.0_131-b11 amd64
JVM: Java HotSpot(TM) 64-Bit Server VM by Oracle Corporation
Linux 4.10.0-33-generic

Devel::Camelcadedb version:

CPAN: Storable loaded ok (v2.41)
Reading '/home/elwood/.cpan/Metadata'
  Database was generated on Wed, 13 Sep 2017 07:17:02 GMT
Devel::Camelcadedb
-------------------------------------------------------------------------
	CPAN: Module::CoreList loaded ok (v3.03)
(no description)
	H/HU/HURRICUP/Devel-Camelcadedb-2017.100.2.tar.gz
	/home/elwood/perl5/lib/perl5/Devel/Camelcadedb.pm
	Installed: 2017.100.2
	CPAN:      2017.100002  up to date
	Alexandr Evstigneev (HURRICUP)
	[email protected]

perl version

This is perl 5, version 18, subversion 2 (v5.18.2) built for x86_64-linux-gnu-thread-multi
(with 44 registered patches, see perl -V for more detail)

OS where perl is executed:

No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 14.04.1 LTS
Release:	14.04
Codename:	trusty

OS where IDEA is executed:

No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.3 LTS
Release:	16.04
Codename:	xenial

Support .perldb or other method of configuring the debugger on startup

In my .perldb file for the command line debugger, I have the following line:

# don't step into Moose itself
use DB::Skip pkgs => [ qr/^(?:Moose|Eval::Closure|Class::MOP)/ ];

With this debugger, I have to paste that code into the evaluate expression dialog box every time I run the debugger. It would be nice to have a place to put code that runs as the debugger starts up every time.

Running under Camelcade debugger changes behavior of Cache::FastMmap

When running our web server in the Camelcade debugger, it is unable to properly manage sessions. Session management in this configuration uses CHI and Cache::FastMmap.

I have reduced it to the following two scripts:

put-in-cache.pl

use 5.14.0;
use strictures 1;

use CHI;

my $cache = CHI->new(
  driver         => 'FastMmap',
  cache_size     => '10m',
  unlink_on_exit => 0,
  root_dir       => "/tmp/test-cache-$>",
);

$cache->set('abc', 'def', 1209600);

get-from-cache.pl

use 5.14.0;
use strictures 1;

use CHI;

my $cache = CHI->new(
  driver         => 'FastMmap',
  cache_size     => '10m',
  unlink_on_exit => 0,
  root_dir       => "/tmp/test-cache-$>",
);

my $value = $cache->get('abc');

die 'Failed to read value from cache' unless $value;
say "value: $value";

If you run put-in-cache.pl once, it will create a persistent cache with the value in it. Then running get-from-cache.pl should be able to pull it back out and print it. This works fine when run outside of the debugger and when run within the standard perl -d debugger.

When run from within the Camelcade debugger, however, the value fails to be retrieved. Furthermore, in trying to debug the reason, it turns out to be a Heisenbug that I can't track down. Placing breakpoints within Cache/FastMmap.pm or adding print statements there can make the problem disappear.

I can't see anything in particular within the Camelcade debugger that should cause this. I wonder if it has anything to do with the XS nature of Cache::FastMmap.

Local Environment: Mac OSX El Capitan running Perl5 plugin 2.101 in Android Studio
Remote Environment: Ubuntu 12.04.5 running Perl 5.14.2 with CHI version 0.60, Cache::FastMmap version 1.44, Devel::Camelcadedb version 1.6.1.5.

Can't set breakpoints in code loaded via eval that contains #line directives

Devel::Camelcade version 2017.100.3

I can reproduce this issue when using ModPerl::Registry. I do not have a simple test case yet, but hopefully the description below is enough for you to understand the issue.

Some context: ModPerl::Registry compiles and caches CGI scripts under mod_perl for faster execution. For example this script:

#!/usr/bin/env perl

print "Content-Type: text/plain\n";
print "\n";
print "Hello, world!\n";

is converted to

package ModPerl::ROOT::ModPerl::RegistryBB::home_mattia_devel_dbgp_apache2_2dcamelcadedb_t_htdocs_registrybb_cgi_2epl;sub handler {local $0 = '/home/mattia/devel/dbgp/apache2-camelcadedb/t/htdocs/registrybb/cgi.pl';
#line 1 /home/mattia/devel/dbgp/apache2-camelcadedb/t/htdocs/registrybb/cgi.pl
#!/usr/bin/env perl

print "Content-Type: text/plain\n";
print "\n";
print "Hello, world!\n";

}

and loaded via eval STRING.

From my debugging, the issue is that Perl does not call DB::postponed for code loaded via eval STRING, so there is no mapping for the file in %_paths_to_perl_file_id_map, and the breakpoint is silently ignored.

Implement exception breakpoints

Technically, we may catch DIE, but not sure if we need it and, the most important, not sure if this will not mess with some tricky code.

Infinite loop when keyword 'each' used in while condition

When the following code is run in the debugger , line by line, it gets stuck in infinite loop. The code runs fine without debugger.

my %hash = ('Hello' => 'World');
while ( my ( $key, $value ) = each %hash ) {
    print "\n$key=$value";
}

The code above can be used to reproduce the issue.

Perl version: 5.18.2 built for MSWin32-x86-multi-thread-64int
Deval::Camelcadedb version: 1.6.1.2
InteliJ IDEA version 2016.1.3
Perl Plugin version 2.005

Breakpoints not working in Intellij

I am using Camelcadedb V2019.1 under Intellij 2019.1.1 Strawberry version 5.18.4 windows 10 pro version 1809 OS Build 17763.437
but even the 7 line script below doesn’t stop at a breakpoint set on line 7.

#!/usr/bin/perl
use strict;
use warnings FATAL => 'all';

print "First Line\n";
print "Second Line\n";
print "After Break\n";

Another script that has subroutines included in the same file and included modules does not stop either in the main part or the subroutine in the same file but will stop at a break set in the included Perl module

I have used the debugger successfully under previous software versions, any assistance will be greatly appreciated.

Erik
B.T.W. this is my first post so please feel free to point out any breaches of established protocol.

Setting core global variables to odd things is causing failures

This is triggering a complaint from a $fh-&gt;print inside Mail::Message that appears to be expecting $\ to be either undef or "\n" - and given the perldoc for the variable says that the default/empty value is undef, not "", I would argue that:

$, = "";      # output field separator is null string
$/ = "\n";    # input record separator is newline
$\ = "";      # output record separator is null string
$^W = 0;      # warnings are off

should be

$, = undef;   # output field separator is null string
$/ = "\n";    # input record separator is newline
$\ = undef;   # output record separator is null string
$^W = 0;      # warnings are off

lvalue subroutines not handled properly

Assigning to lvalue subroutines always fails with "Can't modify non-lvalue subroutine call at ..." errors when run under the debugger. The same code executes just fine stand-alone.

eg.

use strict;
use warnings;
my $var = "Before";
sub foo : lvalue {
$var;
}
foo = "After";
print foo, "\n";

Gives...
(1)Connecting to the IDE from process 1698 at localhost:38513...
Connected.
Disconnected
Can't modify non-lvalue subroutine call at /data/misc/sample-share/working/src/xx.pl line 7, line 1.

Where just running on the command line gives

$ perl xx.pl
After

--

IDE version: IC-171.3780.107
Plugin version: 2017.1.1
Perl version v5.22.1
Devel::Camelcadedb version 1.6.1.6

Report error when debugging perl scirpt which uses other module

When I try to debug following simple perl script:

use strict;     
use warnings;
use Data::Dumper;
my $a = undef;
if ($a == undef) {
    print 'good';
}
my $b = '23';
print $b;

Pycharm shows error message:

Listening on localhost:11862...
C:\Perl\bin\perl.exe -d:Camelcadedb D:\a.pl
(1)Connecting to the IDE from process 17116 at localhost:11862...
Connected
Disconnected
Data/Dumper.pm did not return a true value at D:\a.pl line 3, line 1.
BEGIN failed--compilation aborted at D:\a.pl line 3, line 1.

Process finished with exit code 255

If I remove line "use Data::Dumper;" from script. Debugger works.

My environment:
pycharm 2018.2.3(Build #PY-182.4323.49)
Perl5 plugin version: 2018.2.1
Devel::Camelcadedb version: 2017.100.3
JRE version: 1.8.0_152-release-1248-b8 amd64
Perl version: v5.10.1
OS: Win10 Version 1803

Deep recursion on subroutine "DB::_get_reference_descriptor"

When debugging, sometime the debugger gets stuck in a deep recursion, and I get this message: Deep recursion on subroutine "DB::_get_reference_descriptor" at /home/floreal/.plenv/versions/5.18.2/lib/perl5/site_perl/5.18.2/Devel/Camelcadedb.pm line 650.

CPU load increase dramatically until I kill the running process.

It didn't happen in previous versions of Devel::Camelcadedeb and Idea.

System information:

  • IDE name and version: IntelliJ IDEA 2018.3.3 (Community Edition) Build #IC-183.5153.38, built on January 9, 2019
  • Perl5 plugin version: v2018.3.5
  • Devel::Camelcadedb module version: v2018.3.0
  • JRE version: OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-2~14.04-b11)
  • Perl version: v5.18.2
  • Your OS name and version: Linux Mint (Linux 4.4.0-121-generic)

Debugger hangs when hitting template withcall to a method of stashed object

by @sseide:
I have come acros a bug where the debugger or perl server hangs and must be killed eventually.

It is an mojolicious project, where i stash an Moose Object in the controller for later rendering.
Within the EP template a method of this object is called. This seems to trigger some bug in the mojolicious server or debugger part - the HTTP call never returns to the browser.

Starting the project via "run" from intellij everything works fine. Starting in Debug mode everything works too and i can debug as long as i do not hit an EP template where an method of an object stashed is called.

Attached is an simple mojolicious project where i am able to reprocduce the problem everytime.
Setting an breakpoint in Site::Homepage method simple_template() works as expected,
Calling method template_calling_method() via route /fails hits the bug.

debugger-test.zip

Another remark - in my real Project i see an endless stream of the following messages in the console when hitting such a template - but have not seen them in this test project. Maybe it is another problem...

Mojo::Reactor::EV: I/O watcher failed: Can't locate object method "" via package "Mojo::Reactor::EV" at /home/user/workspaces/workspace/website/script/../perl5/lib/perl5/Mojo/Reactor/Poll.pm line 143.

Use of uninitialized value $cb in method lookup at /home/user/workspaces/workspace/website/script/../perl5/lib/perl5/Mojo/Reactor/Poll.pm line 143.

Linux x64 Debian Jessie
Intellij 2016.1.2
Perl Camelcade Plugin 2.001
Devel-Camelcadedb-1.6.1.1

Perl (v5.20.2, linux - Debian default)
Mojolicious (6.61, Clinking Beer Mugs)
EV 4.0+ (4.22)
IO::Socket::Socks 0.64+ (0.68)
IO::Socket::SSL 1.94+ (2.002)
Net::DNS::Native 0.15+ (n/a)
Moose-2.1802

Console output where debugger hangs (first call to url /ok is fine, second call to url /fails hangs.

Listening on localhost:42690...
/usr/bin/perl -d:Camelcadedb /home/user/workspaces/workspace/debug-test/testserver.pl daemon
Connected
(1)Connecting to the IDE from process 23891 at localhost:42690...
Connected.
Use of uninitialized value $real_path in substitution (s///) at /home/user/workspaces/workspace/perl5/lib/perl5/Devel/Camelcadedb.pm line 1278, line 2125.
Use of uninitialized value $real_path in hash element at /home/user/workspaces/workspace/perl5/lib/perl5/Devel/Camelcadedb.pm line 1011, line 2125.
Use of uninitialized value $real_path in hash element at /home/user/workspaces/workspace/perl5/lib/perl5/Devel/Camelcadedb.pm line 1028, line 2125.
Use of uninitialized value $real_path in hash element at /home/user/workspaces/workspace/perl5/lib/perl5/Devel/Camelcadedb.pm line 1035, line 2125.
[Sat May 28 20:22:48 2016] [info] Listening at "http://*:3000"
[Sat May 28 20:22:55 2016] [debug] GET "/ok"
[Sat May 28 20:22:56 2016] [debug] Routing to controller "Site::Homepage" and action "simple_template"
Use of uninitialized value $real_path in pattern match (m//) at /home/user/workspaces/workspace/perl5/lib/perl5/Devel/Camelcadedb.pm line 197, line 2125.
[Sat May 28 20:22:58 2016] [debug] Rendering template "homepage/simple_template.html.ep"
[Sat May 28 20:22:58 2016] [debug] 200 OK (2.664365s, 0.375/s)
[Sat May 28 20:23:07 2016] [debug] GET "/fails"
[Sat May 28 20:23:07 2016] [debug] Routing to controller "Site::Homepage" and action "template_calling_method"
[Sat May 28 20:23:07 2016] [debug] Rendering template "homepage/template_calling_method.html.ep"
Use of uninitialized value $real_path in substitution (s///) at /home/user/workspaces/workspace/perl5/lib/perl5/Devel/Camelcadedb.pm line 1278, line 3.
Use of uninitialized value $real_path in hash element at /home/user/workspaces/workspace/perl5/lib/perl5/Devel/Camelcadedb.pm line 1011, line 3.
Use of uninitialized value $real_path in pattern match (m//) at /home/user/workspaces/workspace/perl5/lib/perl5/Devel/Camelcadedb.pm line 197, line 3.
Use of uninitialized value $real_path in substitution (s///) at /home/user/workspaces/workspace/perl5/lib/perl5/Devel/Camelcadedb.pm line 1278, line 3.
Use of uninitialized value $real_path in hash element at /home/user/workspaces/workspace/perl5/lib/perl5/Devel/Camelcadedb.pm line 1011, line 3.
Use of uninitialized value $real_path in pattern match (m//) at /home/user/workspaces/workspace/perl5/lib/perl5/Devel/Camelcadedb.pm line 197, line 3.
Use of uninitialized value $real_path in pattern match (m//) at /home/user/workspaces/workspace/perl5/lib/perl5/Devel/Camelcadedb.pm line 197, line 3.

Remote debugger too slow

Moved from Camelcade/Perl5-IDEA#1245

There may be nothing to be done about this, but remote debugging a large project with many Moose classes takes way too long to start debugging for it to be useful. While I am waiting I can hit the pause button in the IDE and it will break during the compilation, so I know it is working on something, but it takes approximately 10 times longer for the project to be debuggable with the IDE than it does for local debugging via the standard Perl debugger on the command line over SSH to the remote machine.

IDE: Android Studio 2.1.1
Build #AI-143.2821654, built on April 28, 2016

Perl5 Plugin: 2.005

JRE: 1.8.0_91-b14 x86_64

OS: OS X El Capitan
10.11.5

Breakpoints ignored with "Attempt to automatically reconnect on disconnection" option

Hello!
There is a bug with remote debugging: Debugger stops at breakpoint only once after Debugger session has run. After the 'Connection lost, reconnecting...; all breakpoints are ignored. If I manualy stop and then start debugging all works fine.

My Environment:
IntelliJ IDEA 2019.3.1 (Community Edition)
Build #IC-193.5662.53, built on December 18, 2019
Runtime version: 11.0.5+10-b520.17 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0

Non-Bundled Plugins: com.perl5 2019.3
Devel::Camelcadedb Installed: v2019.1
perl 5, version 26, subversion 3 (v5.26.3) built for MSWin32-x64-multi-thread

In Webstorm the perl debugger disconnects before running any code

When I attempt to debug in Webstorm, it terminates without executing the code. In the Console there is the following:-


Disconnected
/usr/bin/perl5.28 -d:Camelcadedb /Users/berniesnoek/Development/McLane/QuickAttachateToTTWin.pl

WARNING: This version of perl is included in macOS for compatibility with legacy software.
In future versions of macOS the perl runtime will not be available by
default, and may require you to install an additional package.

Process finished with exit code 11

Any help would be greatly appreciated. I have used the plugin successfully some years ago and have found it excellent.
Bernie

Webstorm 2020.2
Perl Plugin 2020.4
Camelcade 2019.1
Java 1.8.0_271
Perl 5.28.2
MacOS 11.0.1

Here are the parts of the log file that relate to the debugging session.
2020-12-01 07:11:15,569 [ 113815] WARN - tions.ex.ConfigurableCardPanel - auto-dispose 'Plugins' id=preferences.pluginManager
2020-12-01 07:22:51,304 [ 809550] INFO - idea.execution.PerlCommandLine - Executing: /usr/bin/perl5.28 -d:Camelcadedb /Users/berniesnoek/Development/McLane/QuickAttachateToTTWin.pl
2020-12-01 07:22:51,305 [ 809551] INFO - idea.execution.PerlCommandLine - environment: {PERL5_DEBUG_HOST=0.0.0.0, PERL5_DEBUG_ROLE=server, PERL5_DEBUG_PORT=58861} (+CONSOLE)
2020-12-01 07:22:51,305 [ 809551] INFO - idea.execution.PerlCommandLine - working dir: /Users/berniesnoek/Development/McLane
2020-12-01 07:22:51,312 [ 809558] INFO - idea.execution.PerlCommandLine - host = local; vm = system; pty = true; charset: UTF-8

Data access breakpoints

Idea is from one of the telegram chats. And I stuck on such thing myself twice.
Sometimes in the large project something changes value of variable or array/hash. And you can't say - who do this.
Solution is to tie variable and die on necessary operation.
But this looks like a proper job for debugger.
Probably there are better low-level solutions.

Devel::Camelcadedb is registered as 2019.100 at CPAN instead of v2019.1, causing upgrade cycles

Pretty silly in the scheme of things, but..

cpan -u will try to keep "upgrading" to 2019.100, by (re)installing v2019.1.

$ sudo cpan -u
Upgrading all modules
Reading '/home/henk/.cpan/Metadata'
  Database was generated on Wed, 09 Sep 2020 11:55:41 GMT

Package namespace         installed    latest  in CPAN file
Net::Ping                      2.72      2.74  RURBAN/Net-Ping-2.74.tar.gz
Devel::Camelcadedb          v2019.1  2019.100  HURRICUP/Devel-Camelcadedb-v2019.1.tar.gz
$ cpan -D Devel::Camelcadedb
Reading '/home/henk/.cpan/Metadata'
  Database was generated on Wed, 09 Sep 2020 11:55:41 GMT
Devel::Camelcadedb
-------------------------------------------------------------------------
        (no description)
        H/HU/HURRICUP/Devel-Camelcadedb-v2019.1.tar.gz
        /usr/local/lib/perl5/site_perl/5.32.0/Devel/Camelcadedb.pm
        Installed: v2019.1
        CPAN:      2019.100  Not up to date
        Alexandr Evstigneev (HURRICUP)
        [email protected]
$ perl -v

This is perl 5, version 32, subversion 0 (v5.32.0) built for x86_64-linux

Copyright 1987-2020, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
$ cpan --version
/usr/local/bin/cpan version 1.64 calling Getopt::Std::getopts (version 1.12 [paranoid]),
running under Perl version 5.32.0.
  [Now continuing due to backward compatibility and excessive paranoia.
   See 'perldoc Getopt::Std' about $Getopt::Std::STANDARD_HELP_VERSION.]
Nothing to install!
$ uname -a
Linux DESKTOP-LGADNUE 4.4.0-19041-Microsoft #488-Microsoft Mon Sep 01 13:43:00 PST 2020 x86_64 x86_64 x86_64 GNU/Linux

Devel::Camelcadedb version not parsed correctly

Trying to connect to remote Perl Debugger and receiving:

Incorrect Devel::Camelcadedb version: Current plugin version requires Devel::Camelcadedb version 2017.1x, but weve got {1}. Please install appropriate version from CPAN.

Running netcat indicates that the remote debug server is running as expected:

nc -v 192.168.10.10 12345
Connection to 192.168.10.10 port 12345 [tcp/italk] succeeded!
{"version":"v2017.100.3","event":"READY"}

Double-checked with tcpdump that IDEA was reaching out to the correct IP.

Client side:
macOS High Sierra 10.13.3
IntelliJ IDEA Community 2017.3.4 (#IC-173.4548.28)
Perl Plugin 2017.5
Java 1.8.0_152-release-1024-b11 x86_64 (bundled with IDEA)

Server Side:
Devel::Camelcadedb v2017.100.3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.