cmorisse / ikp3db Goto Github PK
View Code? Open in Web Editor NEWIKPdb for CPython 3.x
License: MIT License
IKPdb for CPython 3.x
License: MIT License
I played with the debugger on cloud9, which worked really well.
Is there any way ikp3dp could interface with Eclipse Che?
I mean, is any debug-handler in Eclipse Che compatible in the "language that it speaks"- how about GDB?
Consider this simple program:
x = 50
while True:
pass
If you set a breakpoint on the very first line, start the debugger, it stops at the breakpoint as expected. If you then hit Resume then Suspend, it resumes and stops again at some point in the loop as expected, but if you hit resume then suspend again, it resumes but never suspends again unless there's a breakpoint inside the loop. I've been trying to track this down but I couldn't figure out why this happens. Any thoughts?
Thank you!
Are there plans to support python 3.10? Thank you.
test3.py:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 中文 --------------utf-8 characters-----------------
while 1:
a=[]
s = input()
if s != "":
for x in s.split():
a.append(int(x))
print(sum(a))
else:
break
When debug, there will be some errors as follows:
Traceback (most recent call last):
File "//usr/local/lib/python3.6/dist-packages/ikp3db.py", line 1864, in main
ikpdb._runscript(mainpyfile)
File "//usr/local/lib/python3.6/dist-packages/ikp3db.py", line 1414, in _runscript
exec(statement, globals, locals)
File "<string>", line 1, in <module>
File "//usr/lib/python3.6/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 49: ordinal not in range(128)
The line 1400 in ikp3db.py should change to:
statement = "exec(compile(open('%s', encoding='utf-8').read(), '%s', 'exec'))" % (filename, filename,)
and it will be no error.
I have a pr #8 , please check it.
It looks like the getStatus
command is not supported. I think it should send execution status to the client followed by frames (similar to data sent with programBreak
message) for the debugger to update its status and user interface (e.g., highlight the line we're breaking on if any) after reloading Cloud9.
It appears that there are at least a couple of commands that are missing from ikp3db
that are invoked by the debugger implementation plugin on Cloud9's end, namely reconnect
which is executed after reload and in other implementations seems to suspend if the program is running or just return the stopped
execution state otherwise, and getStatus
executed after reconnect
to fetch information about the stack frame.
I've been trying to familiarize myself with the code and was able to implement both of them but just wanted to confer first before opening a new PR since neither execution state nor last frame (or frames dump for that matter) seem to be remembered anywhere? What would be the best way to go about this? Just adding a couple of instance variables to the IKPdb
class to remember these pieces of data and using them in the implementation of these commands?
Thank you!
I just saw in the "Requirements" section that python3.10 is supported (confirmed), but python3.11 is NOT supported (also confirmed).
What is the timeframe for a release that supports python3.11?
Been experimenting a little with ikp3db
on Cloud9 and was just curious as to why does it make sense to keep ikp3db
running even after the program being debugged exists here? ikp3db
seems to normally exist with the same exit code as the program when one is given here and in this case there's no exit code, but is it reasonable to expect every program to explicitly exit with some status code? Does it indeed make sense to keep ikp3db
running here instead of simply defaulting to an exit code of 0
?
Thank you!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.