line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
2
|
|
|
2
|
|
11
|
use strict; |
|
2
|
|
|
|
|
4
|
|
|
2
|
|
|
|
|
44
|
|
2
|
2
|
|
|
2
|
|
13
|
use warnings; |
|
2
|
|
|
|
|
4
|
|
|
2
|
|
|
|
|
55
|
|
3
|
|
|
|
|
|
|
package Devel::Debug::Server; |
4
|
|
|
|
|
|
|
|
5
|
2
|
|
|
2
|
|
527
|
use ZeroMQ qw/:all/; |
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
6
|
|
|
|
|
|
|
use Time::HiRes qw(usleep nanosleep); |
7
|
|
|
|
|
|
|
use Storable; |
8
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
my $NO_COMMAND = 'no_command'; |
10
|
|
|
|
|
|
|
our $READY_COMMAND = 'ready_command'; |
11
|
|
|
|
|
|
|
our $RUN_COMMAND = 'r'; |
12
|
|
|
|
|
|
|
our $STEP_COMMAND = 's'; |
13
|
|
|
|
|
|
|
our $WAIT_COMMAND = 'WAIT_CMD'; |
14
|
|
|
|
|
|
|
our $SET_BREAKPOINT_COMMAND = 'b'; |
15
|
|
|
|
|
|
|
our $REMOVE_BREAKPOINT_COMMAND = 'remove_command'; |
16
|
|
|
|
|
|
|
our $RETURN_COMMAND = 'return'; |
17
|
|
|
|
|
|
|
our $EVAL_COMMAND = 'e'; |
18
|
|
|
|
|
|
|
our $SUSPEND_COMMAND = 'suspend'; |
19
|
|
|
|
|
|
|
|
20
|
|
|
|
|
|
|
our $DEBUG_PROCESS_TYPE = 'DEBUG_PROCESS'; |
21
|
|
|
|
|
|
|
our $DEBUG_GUI_TYPE = 'DEBUG_GUI'; |
22
|
|
|
|
|
|
|
our $DEBUG_BREAKPOINT_TYPE = 'DEBUG_BREAKPOINT_GUI'; |
23
|
|
|
|
|
|
|
|
24
|
|
|
|
|
|
|
my $requester = undef; |
25
|
|
|
|
|
|
|
|
26
|
|
|
|
|
|
|
# ABSTRACT: communication module for debuging processes |
27
|
|
|
|
|
|
|
|
28
|
|
|
|
|
|
|
|
29
|
|
|
|
|
|
|
sub initZeroMQ{ |
30
|
|
|
|
|
|
|
if (!defined $requester){ |
31
|
|
|
|
|
|
|
my $cxt = ZeroMQ::Context->new; |
32
|
|
|
|
|
|
|
$requester = $cxt->socket(ZeroMQ::Constants::ZMQ_REQ); |
33
|
|
|
|
|
|
|
$requester->connect("tcp://127.0.0.1:5000"); |
34
|
|
|
|
|
|
|
} |
35
|
|
|
|
|
|
|
} |
36
|
|
|
|
|
|
|
|
37
|
|
|
|
|
|
|
|
38
|
|
|
|
|
|
|
sub send { |
39
|
|
|
|
|
|
|
my($data) = @_; |
40
|
|
|
|
|
|
|
|
41
|
|
|
|
|
|
|
my $programInfoStr = Storable::freeze($data); |
42
|
|
|
|
|
|
|
$requester->send($programInfoStr); |
43
|
|
|
|
|
|
|
|
44
|
|
|
|
|
|
|
my $reply = $requester->recv()->data(); |
45
|
|
|
|
|
|
|
return Storable::thaw($reply); |
46
|
|
|
|
|
|
|
} |
47
|
|
|
|
|
|
|
|
48
|
|
|
|
|
|
|
|
49
|
|
|
|
|
|
|
1; |