Hi All,
We are observing some strange behavior in Eclipse, when starting a second TCF debug session, while there is already a debug session
active.
The trace below shows this problem.
At 10:10:14.2369669 the first debug session is started.
Eclipse sends the Hello event, sends some other commands and starts the process by the Processes.start command.
(In the trace the Hello response comes after the subscribe commands, but this is because we trace the outgoing communication asynchronously
after the send operation is really completed and there probably was a thread switch)
At 10:10:46.7621122 the second debug session is started by clicking the bug button.
Eclipse opens a new TCP connection and sends the Hello event.
Our agent responds with Hello on each channel.
Eclipse then sends two Processes.start commands over the new connection.
This initializes two new debug session objects within out agent. For the two new started projects.
The eclipse window, which showed one debug session until now, now shows the two new debug sessions, but not the old one.
The old debug session is not visible any more.
The old debug session was not terminated and there is now no way to terminate it, because is not visible any more.
So it is still blocking physical resources (COM port).
The question is, why the old debug session is abandoned and two new are started?
Other question is, why a new connection is created, when the same type of debug configuration is used and the capabilities of the agent
are already known (Hello).
For the second session, we see that Eclipse is able to send two Processes.start commands over one connection.
Addition info:
-
When now a new debug session is started, the existing two are abandoned and three new are started.
-
Sent means Agent did send
-
Recv means Agent did received
Trace:
10:10:11.3518595 TCF Open [TCP1]TCP:127.0.0.1:5360
10:10:14.2369669 TCF Conn [TCP2]TCP:127.0.0.1:5360
10:10:14.3038345 TCF Recv E Locator Hello ["Diagnostics","Locator","ZeroCopy"]
10:10:14.3122666 TCF Recv C 17 Streams subscribe "Processes"
10:10:14.3122989 TCF Recv C 18 Streams subscribe "ProcessesV1"
10:10:14.3123074 TCF Recv C 19 Streams subscribe "UART-RX"
10:10:14.3123146 TCF Recv C 20 Streams subscribe "UART-TX"
10:10:14.3124142 TCF Sent E Locator Hello ["Locator","Streams","Expressions","Memory","Processes","Registers","RunControl","Breakpoints"]
10:10:14.3213921 TCF Sent R 17 null
10:10:14.3215044 TCF Sent R 18 null
10:10:14.3216197 TCF Sent R 19 null
10:10:14.3216822 TCF Sent R 20 null
10:10:14.3220079 TCF Recv C 21 Breakpoints getIDs
10:10:14.3232023 TCF Recv C 22 Breakpoints getCapabilities null
10:10:14.3235102 TCF Sent R 21 null []
10:10:14.3298339 TCF Sent R 22 null {"HasChildren":false}
10:10:14.3300564 TCF Recv C 23 Processes getEnvironment
10:10:14.3308068 TCF Sent R 23 null []
10:10:14.3318125 TCF Recv C 24 Processes start "" "File.zip" ["File.zip"] ["BuildDate=1606231517","IGNORE_MASTERIO_FLAGS=true","ANSIColors=yes","ConnectionString=COM10","ChipName=Chip12","ForceFlash=Never","Version=V1.0.0","ShowOnlyCPURegisters=no"]
true
10:10:14.6037458 TCF Sent R 24 null {"ID":"TITAN1","Name":"Online Mode","Attached":true,"CanTerminate":false,"StdInID":"TITAN1.stdin","StdOutID":"TITAN1.stdout","StdErrID":"TITAN1.stderr"}
10:10:14.6059282 TCF Recv C 25 Processes getSignalList "TITAN1"
10:10:14.6100125 TCF Sent R 25 null [{"Index":0,"Name":"GPIO Trigger","Code":0}]
10:10:14.6153163 TCF Recv C 26 Memory getChildren null
10:10:14.6158644 TCF Recv C 27 RunControl getChildren null
10:10:14.6164760 TCF Sent R 26 null ["ChildMemory"]
10:10:14.6173369 TCF Sent R 27 null []
10:10:14.6255133 TCF Recv C 28 RunControl getContext "ChildMemory"
10:10:14.6270220 TCF Recv C 29 RunControl getContext "TITAN1"
10:10:14.6291506 TCF Sent R 28 {"Code":16,"Severity":0,"Service":"No such context"} null
10:10:14.6301428 TCF Sent R 29 null {"ID":"TITAN1","ProcessID":"TITAN1","Name":"Online Mode","IsContainer":false,"HasState":false,"CanSuspend":false,"CanResume":0,"CanTerminate":false,"CanDetach":false}
10:10:14.6310366 TCF Recv C 30 RunControl getContext "TITAN1"
10:10:14.6311639 TCF Sent R 30 null {"ID":"TITAN1","ProcessID":"TITAN1","Name":"Online Mode","IsContainer":false,"HasState":false,"CanSuspend":false,"CanResume":0,"CanTerminate":false,"CanDetach":false}
10:10:14.6314136 TCF Recv C 31 Memory getChildren "TITAN1"
10:10:14.6315238 TCF Recv C 32 RunControl getChildren "TITAN1"
10:10:14.6315316 TCF Sent R 31 null []
10:10:14.6316475 TCF Sent R 32 null []
10:10:46.7621122 TCF Conn [TCP5]TCP:127.0.0.1:5360
10:10:46.7661135 TCF Recv E Locator Hello ["Diagnostics","Locator","ZeroCopy"]
10:10:46.7664954 TCF Sent E Locator Hello ["Locator","Streams","Expressions","Memory","Processes","Registers","RunControl","Breakpoints"]
10:10:46.7670834 TCF Sent E Locator Hello ["Locator","Streams","Expressions","Memory","Processes","Registers","RunControl","Breakpoints"]
10:10:46.7675256 TCF Recv C 33 Streams subscribe "Processes"
10:10:46.7677858 TCF Recv C 34 Streams subscribe "ProcessesV1"
10:10:46.7677999 TCF Sent R 33 null
10:10:46.7678048 TCF Recv C 35 Streams subscribe "UART-RX"
10:10:46.7678169 TCF Recv C 36 Streams subscribe "UART-TX"
10:10:46.7679442 TCF Sent R 34 null
10:10:46.7680710 TCF Sent R 35 null
10:10:46.7682470 TCF Sent R 36 null
10:10:46.7684335 TCF Recv C 37 Streams subscribe "Processes"
10:10:46.7684755 TCF Recv C 38 Streams subscribe "ProcessesV1"
10:10:46.7684903 TCF Recv C 39 Streams subscribe "UART-RX"
10:10:46.7685030 TCF Recv C 40 Streams subscribe "UART-TX"
10:10:46.7685591 TCF Recv C 41 Breakpoints getIDs
10:10:46.7686500 TCF Sent R 37 null
10:10:46.7688178 TCF Recv C 42 Breakpoints getCapabilities null
10:10:46.7688531 TCF Sent R 38 null
10:10:46.7689720 TCF Sent R 39 null
10:10:46.7691344 TCF Sent R 40 null
10:10:46.7693560 TCF Recv C 43 Breakpoints getIDs
10:10:46.7694022 TCF Sent R 41 null []
10:10:46.7695422 TCF Recv C 44 Breakpoints getCapabilities null
10:10:46.7696150 TCF Sent R 42 null {"HasChildren":false}
10:10:46.7697562 TCF Sent R 43 null []
10:10:46.7698483 TCF Sent R 44 null {"HasChildren":false}
10:10:46.7699174 TCF Recv C 45 Processes getEnvironment
10:10:46.7701251 TCF Sent R 45 null []
10:10:46.7702190 TCF Recv C 46 Processes getEnvironment
10:10:46.7703669 TCF Sent R 46 null []
10:10:46.7706358 TCF Recv C 47 Processes start "" "File.zip" ["File.zip"] ["BuildDate=1606231517","IGNORE_MASTERIO_FLAGS=true","ANSIColors=yes","ConnectionString=COM10","ChipName=Chip12","ForceFlash=Never","Version=V1.0.0","ShowOnlyCPURegisters=no"]
true
10:10:46.7713406 TCF Recv C 48 Processes start "" "File.zip" ["File.zip"] ["BuildDate=1606231517","IGNORE_MASTERIO_FLAGS=true","ANSIColors=yes","ConnectionString=COM10","ChipName=Chip12","ForceFlash=Never","Version=V1.0.0","ShowOnlyCPURegisters=no"]
true
10:10:47.0288625 TCF Sent R 47 null {"ID":"TITAN2","Name":"Offline Mode","Attached":true,"CanTerminate":false,"StdInID":"TITAN2.stdin","StdOutID":"TITAN2.stdout","StdErrID":"TITAN2.stderr"}
10:10:47.0292045 TCF Recv C 49 Processes getSignalList "TITAN2"
10:10:47.3636902 TCF Sent R 48 null {"ID":"TITAN3","Name":"Offline Mode","Attached":true,"CanTerminate":false,"StdInID":"TITAN3.stdin","StdOutID":"TITAN3.stdout","StdErrID":"TITAN3.stderr"}
10:10:47.3638483 TCF Sent R 49 null [{"Index":0,"Name":"GPIO Trigger","Code":0}]
10:10:47.3640527 TCF Recv C 50 Processes getSignalList "TITAN3"
10:10:47.3641770 TCF Sent R 50 null [{"Index":0,"Name":"GPIO Trigger","Code":0}]
10:10:47.3642419 TCF Recv C 51 Memory getChildren null
10:10:47.3642954 TCF Sent R 51 null ["ChildMemory"]
10:10:47.3643606 TCF Recv C 52 RunControl getChildren null
10:10:47.3644710 TCF Sent R 52 null []
10:10:47.3648529 TCF Recv C 53 Memory getChildren null
10:10:47.3648972 TCF Recv C 55 RunControl getContext "TITAN2"
10:10:47.3650346 TCF Recv C 54 RunControl getChildren null
10:10:47.3651128 TCF Sent R 53 null ["ChildMemory"]
10:10:47.3652341 TCF Recv C 56 RunControl getContext "ChildMemory"
10:10:47.3653292 TCF Sent R 55 null {"ID":"TITAN2","ProcessID":"TITAN2","Name":"Offline Mode","IsContainer":false,"HasState":false,"CanSuspend":false,"CanResume":0,"CanTerminate":false,"CanDetach":false}
10:10:47.3655767 TCF Recv C 57 RunControl getContext "TITAN2"
10:10:47.3658571 TCF Recv C 60 RunControl getContext "TITAN3"
10:10:47.3658840 TCF Recv C 58 Memory getChildren "TITAN2"
10:10:47.3658855 TCF Sent R 54 null []
10:10:47.3658918 TCF Recv C 59 RunControl getChildren "TITAN2"
10:10:47.3660497 TCF Sent R 56 {"Code":16,"Severity":0,"Service":"No such context"} null
10:10:47.3661333 TCF Sent R 57 null {"ID":"TITAN2","ProcessID":"TITAN2","Name":"Offline Mode","IsContainer":false,"HasState":false,"CanSuspend":false,"CanResume":0,"CanTerminate":false,"CanDetach":false}
10:10:47.3662139 TCF Sent R 60 null {"ID":"TITAN3","ProcessID":"TITAN3","Name":"Offline Mode","IsContainer":false,"HasState":false,"CanSuspend":false,"CanResume":0,"CanTerminate":false,"CanDetach":false}
10:10:47.3662664 TCF Sent R 58 null []
10:10:47.3663105 TCF Sent R 59 null []
10:10:47.3665604 TCF Recv C 61 RunControl getContext "TITAN3"
10:10:47.3666718 TCF Recv C 62 Memory getChildren "TITAN3"
10:10:47.3666785 TCF Recv C 63 RunControl getChildren "TITAN3"
10:10:47.3669296 TCF Sent R 61 null {"ID":"TITAN3","ProcessID":"TITAN3","Name":"Offline Mode","IsContainer":false,"HasState":false,"CanSuspend":false,"CanResume":0,"CanTerminate":false,"CanDetach":false}
10:10:47.3670766 TCF Sent R 62 null []
10:10:47.3672130 TCF Sent R 63 null []
Best Regards,
Daniel