|  | Debugging of a long running process under Windows |  | |
| | | Propad |  |
| Posted: Thu Jul 31, 2008 1:55 pm Post subject: Debugging of a long running process under Windows |  |
| |  | |
Hello, I know this issue pops up once in a while, but I haven't found a good answer to it. I need to debug a long running application under windows. The application is a combined java/python framework for testing ECUs in the automotive industry. Basically, the Java GUI (Eclipse-based) starts test-cases written in Python and provides the console where the test-logs are seen. When there is a exception somewhere in the testcases (or the underlying functionallity, also written in Python), those are also logged, and then the framework usually continues with the next command in the same test case. I'd like to have a debugging facillity better than print statements. I imagine: a) something like a debugger poping up when I get an exception, or b) something debugger-like poping up when it reaches a command I entered something in the code, or c) Me pressing on a button and getting a debugger-like-thing that lets me look into the running, possibly halted code. I've done some little experiments with the code module, which looks nice but does not seem to get over the control from the java-part, and with popen2("cmd"), which seems not even to work if I start the code from a dosbox (the same console is keept), and same thing when strated by the Java-App. Just to add, using pdb (or pythonwin debugger) seems not to be an option, as it makes the test-runs much slower. Does somebody have an idea? It seems there used to be a python debugger called Pygdb, able to attach to a running application, but now it seems it disapeared (now there is a python debugger with the same name, linked to ViM). Thanx, Propad |
| |
| | | R. Bernstein |  |
| Posted: Thu Aug 21, 2008 12:42 am Post subject: Re: Debugging of a long running process under Windows |  |
| |  | |
I don't know how well Microsoft Windows allows for sending a process a signal in Python, but if the Python signal module works reasonably well on Microsoft Windows, then reread LINK
Should you not want to use or can't use pydb, or want to do this with sockets, then basically you do the same thing that pydb is doing here, substituting sockets if you like.
The basic ideas that were discussed in:
LINK
The discussion was in the context of shell languages, but it is equally applicable in Python.
Good luck!
Propad <npropadovic@googlemail.com> writes:
| Quote: | Hello, I know this issue pops up once in a while, but I haven't found a good answer to it. I need to debug a long running application under windows. The application is a combined java/python framework for testing ECUs in the automotive industry. Basically, the Java GUI (Eclipse-based) starts test-cases written in Python and provides the console where the test-logs are seen. When there is a exception somewhere in the testcases (or the underlying functionallity, also written in Python), those are also logged, and then the framework usually continues with the next command in the same test case. I'd like to have a debugging facillity better than print statements. I imagine: a) something like a debugger poping up when I get an exception, or b) something debugger-like poping up when it reaches a command I entered something in the code, or c) Me pressing on a button and getting a debugger-like-thing that lets me look into the running, possibly halted code. I've done some little experiments with the code module, which looks nice but does not seem to get over the control from the java-part, and with popen2("cmd"), which seems not even to work if I start the code from a dosbox (the same console is keept), and same thing when strated by the Java-App. Just to add, using pdb (or pythonwin debugger) seems not to be an option, as it makes the test-runs much slower. Does somebody have an idea? It seems there used to be a python debugger called Pygdb, able to attach to a running application, but now it seems it disapeared (now there is a python debugger with the same name, linked to ViM). Thanx, Propad |
|
| |
| | | Tim Golden |  |
| Posted: Thu Aug 21, 2008 7:10 am Post subject: Re: Debugging of a long running process under Windows |  |
R. Bernstein wrote:
| Quote: | I don't know how well Microsoft Windows allows for sending a process a signal in Python, but if the Python signal module works reasonably well on Microsoft Windows, then reread LINK
|
The answer is: not terribly well. (Or, rather: in a very limited way). You should, however, be able to make use of the SetConsoleCtrlHandler win32 api which is exposed by pywin32's win32api module, or could be accessed via ctypes:
LINK LINK(VS.85).aspx
TJG |
| |
| | | R. Bernstein |  |
| Posted: Thu Aug 21, 2008 8:02 am Post subject: Re: Debugging of a long running process under Windows |  |
| |  | |
Tim Golden <mail@timgolden.me.uk> writes:
| Quote: | R. Bernstein wrote: I don't know how well Microsoft Windows allows for sending a process a signal in Python, but if the Python signal module works reasonably well on Microsoft Windows, then reread LINK
The answer is: not terribly well. (Or, rather: in a very limited way). You should, however, be able to make use of the SetConsoleCtrlHandler win32 api which is exposed by pywin32's win32api module, or could be accessed via ctypes:
LINK LINK(VS.85).aspx
TJG
|
Interesting. Yes, it seems limited in that you get CTRL+C or CTRL+BREAK which seems to map to one of CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, or CTRL_SHUTDOWN_EVENT signals.
If someone is interested in hooking this into pydb's signal handling mechanism, I'll consider adding in a future release. (If hacking the configure script to test for the presense Microsoft Windows or the win32api is tedious, I can manage doing that part.) |
| |
| | | Propad |  |
| Posted: Thu Aug 21, 2008 11:49 am Post subject: Re: Debugging of a long running process under Windows |  |
| |  | |
Hello,
thank you very much everybody. I gave up hope for an answer a long time ago . I'll take a look at the proposed solutions and give you a note.
Cheers,
Propad
On Aug 21, 12:02 pm, ro...@panix.com (R. Bernstein) wrote:
| Quote: | Tim Golden <m...@timgolden.me.uk> writes: R. Bernstein wrote: I don't know how well Microsoft Windows allows for sending a process a signal in Python, but if the Python signal module works reasonably well on Microsoft Windows, then reread LINK
The answer is: not terribly well. (Or, rather: in a very limited way). You should, however, be able to make use of the SetConsoleCtrlHandler win32 api which is exposed by pywin32's win32api module, or could be accessed via ctypes:
LINK LINK(VS.85).aspx
TJG
Interesting. Yes, it seems limited in that you get CTRL+C or CTRL+BREAK which seems to map to one of CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, or CTRL_SHUTDOWN_EVENT signals.
If someone is interested in hooking this into pydb's signal handling mechanism, I'll consider adding in a future release. (If hacking the configure script to test for the presense Microsoft Windows or the win32api is tedious, I can manage doing that part.)- Hide quoted text -
- Show quoted text - |
|
| |
|
|