Python IDLE无法在windows上打开调试生成

Python IDLE无法在windows上打开调试生成,python,debugging,python-2.7,python-idle,Python,Debugging,Python 2.7,Python Idle,我从下载了源代码,在源代码的指导下,我能够从源代码构建Python 现在,当尝试运行该命令时 C:\Python-2.7.6\PCbuild\pythonw_d.exe c:\Python-2.7.6\Lib\idlelib\idle.py 什么也没出现 因此,我开始调试,首先通过以下代码段向Windows应用程序添加了一个控制台到pythonw\WInMain.c void RedirectStdoutToNewCOnsole() { HANDLE consoleHandle;

我从下载了源代码,在源代码的指导下,我能够从源代码构建Python

现在,当尝试运行该命令时

C:\Python-2.7.6\PCbuild\pythonw_d.exe c:\Python-2.7.6\Lib\idlelib\idle.py
什么也没出现

因此,我开始调试,首先通过以下代码段向Windows应用程序添加了一个控制台到
pythonw\WInMain.c

void RedirectStdoutToNewCOnsole()
{
    HANDLE consoleHandle;
    FILE *fp;
    int fileDescriptor;
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    AllocConsole();
    consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
    fileDescriptor = _open_osfhandle((intptr_t)consoleHandle, _O_TEXT);
    fp = _fdopen( fileDescriptor, "w" );
    *stdout = *fp;
    setvbuf( stdout, NULL, _IONBF, 0 );        
    if ( GetConsoleScreenBufferInfo(consoleHandle, &csbi) )
    {
        COORD bufferSize;
        bufferSize.X = csbi.dwSize.X;
        bufferSize.Y = 1000;
        SetConsoleScreenBufferSize(consoleHandle, bufferSize);
    }
}
我能够看到源代码被正确解析

Token NAME/'import' ... It's a keyword
 DFA 'file_input', state 0: Push ...
 DFA 'stmt', state 0: Push ...
 DFA 'simple_stmt', state 0: Push ...
 DFA 'small_stmt', state 0: Push ...
 DFA 'import_stmt', state 0: Push ...
 DFA 'import_name', state 0: Shift.
Token NAME/'os' ... It's a token we know
 DFA 'import_name', state 1: Push ...
 DFA 'dotted_as_names', state 0: Push ...
 DFA 'dotted_as_name', state 0: Push ...
 DFA 'dotted_name', state 0: Shift.
Token DOT/'.' ... It's a token we know
 DFA 'dotted_name', state 1: Shift.
Token NAME/'path' ... It's a token we know
 DFA 'dotted_name', state 0: Shift.
Token NEWLINE/'' ... It's a token we know
 DFA 'dotted_name', state 1: Pop ...
 DFA 'dotted_as_name', state 1: Pop ...
 DFA 'dotted_as_names', state 1: Pop ...
 DFA 'import_name', state 2: Pop ...
 DFA 'import_stmt', state 1: Pop ...
 DFA 'small_stmt', state 1: Pop ...
 DFA 'simple_stmt', state 1: Shift.
  DFA 'simple_stmt', state 3: Direct pop.
  DFA 'stmt', state 1: Direct pop.
Token NAME/'import' ... It's a keyword
 DFA 'file_input', state 0: Push ...
 DFA 'stmt', state 0: Push ...
 DFA 'simple_stmt', state 0: Push ...
 DFA 'small_stmt', state 0: Push ...
 DFA 'import_stmt', state 0: Push ...
 DFA 'import_name', state 0: Shift.
Token NAME/'sys' ... It's a token we know
 DFA 'import_name', state 1: Push ...
 DFA 'dotted_as_names', state 0: Push ...
 DFA 'dotted_as_name', state 0: Push ...
 DFA 'dotted_name', state 0: Shift.
Token NEWLINE/'' ... It's a token we know
 DFA 'dotted_name', state 1: Pop ...
 DFA 'dotted_as_name', state 1: Pop ...
 DFA 'dotted_as_names', state 1: Pop ...
 DFA 'import_name', state 2: Pop ...
 DFA 'import_stmt', state 1: Pop ...
 DFA 'small_stmt', state 1: Pop ...
 DFA 'simple_stmt', state 1: Shift.
  DFA 'simple_stmt', state 3: Direct pop.
  DFA 'stmt', state 1: Direct pop.
Token NAME/'idlelib_dir' ... It's a token we kno
 DFA 'file_input', state 0: Push ...
 DFA 'stmt', state 0: Push ...
 DFA 'simple_stmt', state 0: Push ...
 DFA 'small_stmt', state 0: Push ...
 DFA 'expr_stmt', state 0: Push ...
 DFA 'testlist', state 0: Push ...
 DFA 'test', state 0: Push ...
 DFA 'or_test', state 0: Push ...
 DFA 'and_test', state 0: Push ...
 DFA 'not_test', state 0: Push ...
 DFA 'comparison', state 0: Push ...
 DFA 'expr', state 0: Push ...
 DFA 'xor_expr', state 0: Push ...
 DFA 'and_expr', state 0: Push ...
 DFA 'shift_expr', state 0: Push ...
 DFA 'arith_expr', state 0: Push ...
 DFA 'term', state 0: Push ...
 DFA 'factor', state 0: Push ...
 DFA 'power', state 0: Push ...
 DFA 'atom', state 0: Shift.
  DFA 'atom', state 5: Direct pop.
Token EQUAL/'=' ... It's a token we know
 DFA 'power', state 1: Pop ...
 DFA 'factor', state 2: Pop ...
 DFA 'term', state 1: Pop ...
 DFA 'arith_expr', state 1: Pop ...
 DFA 'shift_expr', state 1: Pop ...
 DFA 'and_expr', state 1: Pop ...
 DFA 'xor_expr', state 1: Pop ...
 DFA 'expr', state 1: Pop ...
 DFA 'comparison', state 1: Pop ...
 DFA 'not_test', state 2: Pop ...
 DFA 'and_test', state 1: Pop ...
 DFA 'or_test', state 1: Pop ...
 DFA 'test', state 1: Pop ...
 DFA 'testlist', state 1: Pop ...
 DFA 'expr_stmt', state 1: Shift.
Token NAME/'os' ... It's a token we know
 DFA 'expr_stmt', state 3: Push ...
 DFA 'testlist', state 0: Push ...
 DFA 'test', state 0: Push ...
 DFA 'or_test', state 0: Push ...
 DFA 'and_test', state 0: Push ...
 DFA 'not_test', state 0: Push ...
 DFA 'comparison', state 0: Push ...
 DFA 'expr', state 0: Push ...
 DFA 'xor_expr', state 0: Push ...
 DFA 'and_expr', state 0: Push ...
 DFA 'shift_expr', state 0: Push ...
 DFA 'arith_expr', state 0: Push ...
 DFA 'term', state 0: Push ...
 DFA 'factor', state 0: Push ...
 DFA 'power', state 0: Push ...
 DFA 'atom', state 0: Shift.
  DFA 'atom', state 5: Direct pop.
Token DOT/'.' ... It's a token we know
 DFA 'power', state 1: Push ...
 DFA 'trailer', state 0: Shift.
Token NAME/'path' ... It's a token we know
 DFA 'trailer', state 3: Shift.
  DFA 'trailer', state 5: Direct pop.
Token DOT/'.' ... It's a token we know
 DFA 'power', state 1: Push ...
 DFA 'trailer', state 0: Shift.
Token NAME/'dirname' ... It's a token we know
 DFA 'trailer', state 3: Shift.
  DFA 'trailer', state 5: Direct pop.
Token LPAR/'(' ... It's a token we know
 DFA 'power', state 1: Push ...
 DFA 'trailer', state 0: Shift.
Token NAME/'os' ... It's a token we know
 DFA 'trailer', state 1: Push ...
 DFA 'arglist', state 0: Push ...
 DFA 'argument', state 0: Push ...
 DFA 'test', state 0: Push ...
 DFA 'or_test', state 0: Push ...
 DFA 'and_test', state 0: Push ...
 DFA 'not_test', state 0: Push ...
 DFA 'comparison', state 0: Push ...
 DFA 'expr', state 0: Push ...
 DFA 'xor_expr', state 0: Push ...
 DFA 'and_expr', state 0: Push ...
 DFA 'shift_expr', state 0: Push ...
 DFA 'arith_expr', state 0: Push ...
 DFA 'term', state 0: Push ...
 DFA 'factor', state 0: Push ...
 DFA 'power', state 0: Push ...
 DFA 'atom', state 0: Shift.
  DFA 'atom', state 5: Direct pop.
Token DOT/'.' ... It's a token we know
 DFA 'power', state 1: Push ...
 DFA 'trailer', state 0: Shift.
Token NAME/'path' ... It's a token we know
 DFA 'trailer', state 3: Shift.
  DFA 'trailer', state 5: Direct pop.
Token DOT/'.' ... It's a token we know
 DFA 'power', state 1: Push ...
 DFA 'trailer', state 0: Shift.
Token NAME/'dirname' ... It's a token we know
 DFA 'trailer', state 3: Shift.
  DFA 'trailer', state 5: Direct pop.
Token LPAR/'(' ... It's a token we know
 DFA 'power', state 1: Push ...
 DFA 'trailer', state 0: Shift.
Token NAME/'os' ... It's a token we know
 DFA 'trailer', state 1: Push ...
 DFA 'arglist', state 0: Push ...
 DFA 'argument', state 0: Push ...
 DFA 'test', state 0: Push ...
 DFA 'or_test', state 0: Push ...
 DFA 'and_test', state 0: Push ...
 DFA 'not_test', state 0: Push ...
 DFA 'comparison', state 0: Push ...
 DFA 'expr', state 0: Push ...
 DFA 'xor_expr', state 0: Push ...
 DFA 'and_expr', state 0: Push ...
 DFA 'shift_expr', state 0: Push ...
 DFA 'arith_expr', state 0: Push ...
 DFA 'term', state 0: Push ...
 DFA 'factor', state 0: Push ...
 DFA 'power', state 0: Push ...
 DFA 'atom', state 0: Shift.
  DFA 'atom', state 5: Direct pop.
Token DOT/'.' ... It's a token we know
 DFA 'power', state 1: Push ...
 DFA 'trailer', state 0: Shift.
Token NAME/'path' ... It's a token we know
 DFA 'trailer', state 3: Shift.
  DFA 'trailer', state 5: Direct pop.
Token DOT/'.' ... It's a token we know
 DFA 'power', state 1: Push ...
 DFA 'trailer', state 0: Shift.
Token NAME/'abspath' ... It's a token we know
 DFA 'trailer', state 3: Shift.
  DFA 'trailer', state 5: Direct pop.
Token LPAR/'(' ... It's a token we know
 DFA 'power', state 1: Push ...
 DFA 'trailer', state 0: Shift.
Token NAME/'__file__' ... It's a token we know
 DFA 'trailer', state 1: Push ...
 DFA 'arglist', state 0: Push ...
 DFA 'argument', state 0: Push ...
 DFA 'test', state 0: Push ...
 DFA 'or_test', state 0: Push ...
 DFA 'and_test', state 0: Push ...
 DFA 'not_test', state 0: Push ...
 DFA 'comparison', state 0: Push ...
 DFA 'expr', state 0: Push ...
 DFA 'xor_expr', state 0: Push ...
 DFA 'and_expr', state 0: Push ...
 DFA 'shift_expr', state 0: Push ...
 DFA 'arith_expr', state 0: Push ...
 DFA 'term', state 0: Push ...
 DFA 'factor', state 0: Push ...
 DFA 'power', state 0: Push ...
 DFA 'atom', state 0: Shift.
  DFA 'atom', state 5: Direct pop.
Token RPAR/')' ... It's a token we know
 DFA 'power', state 1: Pop ...
 DFA 'factor', state 2: Pop ...
 DFA 'term', state 1: Pop ...
 DFA 'arith_expr', state 1: Pop ...
 DFA 'shift_expr', state 1: Pop ...
 DFA 'and_expr', state 1: Pop ...
 DFA 'xor_expr', state 1: Pop ...
 DFA 'expr', state 1: Pop ...
 DFA 'comparison', state 1: Pop ...
 DFA 'not_test', state 2: Pop ...
 DFA 'and_test', state 1: Pop ...
 DFA 'or_test', state 1: Pop ...
 DFA 'test', state 1: Pop ...
 DFA 'argument', state 1: Pop ...
 DFA 'arglist', state 1: Pop ...
 DFA 'trailer', state 4: Shift.
  DFA 'trailer', state 5: Direct pop.
Token RPAR/')' ... It's a token we know
 DFA 'power', state 1: Pop ...
 DFA 'factor', state 2: Pop ...
 DFA 'term', state 1: Pop ...
 DFA 'arith_expr', state 1: Pop ...
 DFA 'shift_expr', state 1: Pop ...
 DFA 'and_expr', state 1: Pop ...
 DFA 'xor_expr', state 1: Pop ...
 DFA 'expr', state 1: Pop ...
 DFA 'comparison', state 1: Pop ...
 DFA 'not_test', state 2: Pop ...
 DFA 'and_test', state 1: Pop ...
 DFA 'or_test', state 1: Pop ...
 DFA 'test', state 1: Pop ...
 DFA 'argument', state 1: Pop ...
 DFA 'arglist', state 1: Pop ...
 DFA 'trailer', state 4: Shift.
  DFA 'trailer', state 5: Direct pop.
Token RPAR/')' ... It's a token we know
 DFA 'power', state 1: Pop ...
 DFA 'factor', state 2: Pop ...
 DFA 'term', state 1: Pop ...
 DFA 'arith_expr', state 1: Pop ...
 DFA 'shift_expr', state 1: Pop ...
 DFA 'and_expr', state 1: Pop ...
 DFA 'xor_expr', state 1: Pop ...
 DFA 'expr', state 1: Pop ...
 DFA 'comparison', state 1: Pop ...
 DFA 'not_test', state 2: Pop ...
 DFA 'and_test', state 1: Pop ...
 DFA 'or_test', state 1: Pop ...
 DFA 'test', state 1: Pop ...
 DFA 'argument', state 1: Pop ...
 DFA 'arglist', state 1: Pop ...
 DFA 'trailer', state 4: Shift.
  DFA 'trailer', state 5: Direct pop.
Token NEWLINE/'' ... It's a token we know
 DFA 'power', state 1: Pop ...
 DFA 'factor', state 2: Pop ...
 DFA 'term', state 1: Pop ...
 DFA 'arith_expr', state 1: Pop ...
 DFA 'shift_expr', state 1: Pop ...
 DFA 'and_expr', state 1: Pop ...
 DFA 'xor_expr', state 1: Pop ...
 DFA 'expr', state 1: Pop ...
 DFA 'comparison', state 1: Pop ...
 DFA 'not_test', state 2: Pop ...
 DFA 'and_test', state 1: Pop ...
 DFA 'or_test', state 1: Pop ...
 DFA 'test', state 1: Pop ...
 DFA 'testlist', state 1: Pop ...
 DFA 'expr_stmt', state 5: Pop ...
 DFA 'small_stmt', state 1: Pop ...
 DFA 'simple_stmt', state 1: Shift.
  DFA 'simple_stmt', state 3: Direct pop.
  DFA 'stmt', state 1: Direct pop.
Token NAME/'sys' ... It's a token we know
 DFA 'file_input', state 0: Push ...
 DFA 'stmt', state 0: Push ...
 DFA 'simple_stmt', state 0: Push ...
 DFA 'small_stmt', state 0: Push ...
 DFA 'expr_stmt', state 0: Push ...
 DFA 'testlist', state 0: Push ...
 DFA 'test', state 0: Push ...
 DFA 'or_test', state 0: Push ...
 DFA 'and_test', state 0: Push ...
 DFA 'not_test', state 0: Push ...
 DFA 'comparison', state 0: Push ...
 DFA 'expr', state 0: Push ...
 DFA 'xor_expr', state 0: Push ...
 DFA 'and_expr', state 0: Push ...
 DFA 'shift_expr', state 0: Push ...
 DFA 'arith_expr', state 0: Push ...
 DFA 'term', state 0: Push ...
 DFA 'factor', state 0: Push ...
 DFA 'power', state 0: Push ...
 DFA 'atom', state 0: Shift.
  DFA 'atom', state 5: Direct pop.
Token DOT/'.' ... It's a token we know
 DFA 'power', state 1: Push ...
 DFA 'trailer', state 0: Shift.
Token NAME/'path' ... It's a token we know
 DFA 'trailer', state 3: Shift.
  DFA 'trailer', state 5: Direct pop.
Token DOT/'.' ... It's a token we know
 DFA 'power', state 1: Push ...
 DFA 'trailer', state 0: Shift.
Token NAME/'insert' ... It's a token we know
 DFA 'trailer', state 3: Shift.
  DFA 'trailer', state 5: Direct pop.
Token LPAR/'(' ... It's a token we know
 DFA 'power', state 1: Push ...
 DFA 'trailer', state 0: Shift.
Token NUMBER/'0' ... It's a token we know
 DFA 'trailer', state 1: Push ...
 DFA 'arglist', state 0: Push ...
 DFA 'argument', state 0: Push ...
 DFA 'test', state 0: Push ...
 DFA 'or_test', state 0: Push ...
 DFA 'and_test', state 0: Push ...
 DFA 'not_test', state 0: Push ...
 DFA 'comparison', state 0: Push ...
 DFA 'expr', state 0: Push ...
 DFA 'xor_expr', state 0: Push ...
 DFA 'and_expr', state 0: Push ...
 DFA 'shift_expr', state 0: Push ...
 DFA 'arith_expr', state 0: Push ...
 DFA 'term', state 0: Push ...
 DFA 'factor', state 0: Push ...
 DFA 'power', state 0: Push ...
 DFA 'atom', state 0: Shift.
  DFA 'atom', state 5: Direct pop.
Token COMMA/',' ... It's a token we know
 DFA 'power', state 1: Pop ...
 DFA 'factor', state 2: Pop ...
 DFA 'term', state 1: Pop ...
 DFA 'arith_expr', state 1: Pop ...
 DFA 'shift_expr', state 1: Pop ...
 DFA 'and_expr', state 1: Pop ...
 DFA 'xor_expr', state 1: Pop ...
 DFA 'expr', state 1: Pop ...
 DFA 'comparison', state 1: Pop ...
 DFA 'not_test', state 2: Pop ...
 DFA 'and_test', state 1: Pop ...
 DFA 'or_test', state 1: Pop ...
 DFA 'test', state 1: Pop ...
 DFA 'argument', state 1: Pop ...
 DFA 'arglist', state 1: Shift.
Token NAME/'idlelib_dir' ... It's a token we kno
 DFA 'arglist', state 4: Push ...
 DFA 'argument', state 0: Push ...
 DFA 'test', state 0: Push ...
 DFA 'or_test', state 0: Push ...
 DFA 'and_test', state 0: Push ...
 DFA 'not_test', state 0: Push ...
 DFA 'comparison', state 0: Push ...
 DFA 'expr', state 0: Push ...
 DFA 'xor_expr', state 0: Push ...
 DFA 'and_expr', state 0: Push ...
 DFA 'shift_expr', state 0: Push ...
 DFA 'arith_expr', state 0: Push ...
 DFA 'term', state 0: Push ...
 DFA 'factor', state 0: Push ...
 DFA 'power', state 0: Push ...
 DFA 'atom', state 0: Shift.
  DFA 'atom', state 5: Direct pop.
Token RPAR/')' ... It's a token we know
 DFA 'power', state 1: Pop ...
 DFA 'factor', state 2: Pop ...
 DFA 'term', state 1: Pop ...
 DFA 'arith_expr', state 1: Pop ...
 DFA 'shift_expr', state 1: Pop ...
 DFA 'and_expr', state 1: Pop ...
 DFA 'xor_expr', state 1: Pop ...
 DFA 'expr', state 1: Pop ...
 DFA 'comparison', state 1: Pop ...
 DFA 'not_test', state 2: Pop ...
 DFA 'and_test', state 1: Pop ...
 DFA 'or_test', state 1: Pop ...
 DFA 'test', state 1: Pop ...
 DFA 'argument', state 1: Pop ...
 DFA 'arglist', state 1: Pop ...
 DFA 'trailer', state 4: Shift.
  DFA 'trailer', state 5: Direct pop.
Token NEWLINE/'' ... It's a token we know
 DFA 'power', state 1: Pop ...
 DFA 'factor', state 2: Pop ...
 DFA 'term', state 1: Pop ...
 DFA 'arith_expr', state 1: Pop ...
 DFA 'shift_expr', state 1: Pop ...
 DFA 'and_expr', state 1: Pop ...
 DFA 'xor_expr', state 1: Pop ...
 DFA 'expr', state 1: Pop ...
 DFA 'comparison', state 1: Pop ...
 DFA 'not_test', state 2: Pop ...
 DFA 'and_test', state 1: Pop ...
 DFA 'or_test', state 1: Pop ...
 DFA 'test', state 1: Pop ...
 DFA 'testlist', state 1: Pop ...
 DFA 'expr_stmt', state 1: Pop ...
 DFA 'small_stmt', state 1: Pop ...
 DFA 'simple_stmt', state 1: Shift.
  DFA 'simple_stmt', state 3: Direct pop.
  DFA 'stmt', state 1: Direct pop.
Token NAME/'import' ... It's a keyword
 DFA 'file_input', state 0: Push ...
 DFA 'stmt', state 0: Push ...
 DFA 'simple_stmt', state 0: Push ...
 DFA 'small_stmt', state 0: Push ...
 DFA 'import_stmt', state 0: Push ...
 DFA 'import_name', state 0: Shift.
Token NAME/'idlelib' ... It's a token we know
 DFA 'import_name', state 1: Push ...
 DFA 'dotted_as_names', state 0: Push ...
 DFA 'dotted_as_name', state 0: Push ...
 DFA 'dotted_name', state 0: Shift.
Token DOT/'.' ... It's a token we know
 DFA 'dotted_name', state 1: Shift.
Token NAME/'PyShell' ... It's a token we know
 DFA 'dotted_name', state 0: Shift.
Token NEWLINE/'' ... It's a token we know
 DFA 'dotted_name', state 1: Pop ...
 DFA 'dotted_as_name', state 1: Pop ...
 DFA 'dotted_as_names', state 1: Pop ...
 DFA 'import_name', state 2: Pop ...
 DFA 'import_stmt', state 1: Pop ...
 DFA 'small_stmt', state 1: Pop ...
 DFA 'simple_stmt', state 1: Shift.
  DFA 'simple_stmt', state 3: Direct pop.
  DFA 'stmt', state 1: Direct pop.
Token NAME/'idlelib' ... It's a token we know
 DFA 'file_input', state 0: Push ...
 DFA 'stmt', state 0: Push ...
 DFA 'simple_stmt', state 0: Push ...
 DFA 'small_stmt', state 0: Push ...
 DFA 'expr_stmt', state 0: Push ...
 DFA 'testlist', state 0: Push ...
 DFA 'test', state 0: Push ...
 DFA 'or_test', state 0: Push ...
 DFA 'and_test', state 0: Push ...
 DFA 'not_test', state 0: Push ...
 DFA 'comparison', state 0: Push ...
 DFA 'expr', state 0: Push ...
 DFA 'xor_expr', state 0: Push ...
 DFA 'and_expr', state 0: Push ...
 DFA 'shift_expr', state 0: Push ...
 DFA 'arith_expr', state 0: Push ...
 DFA 'term', state 0: Push ...
 DFA 'factor', state 0: Push ...
 DFA 'power', state 0: Push ...
 DFA 'atom', state 0: Shift.
  DFA 'atom', state 5: Direct pop.
Token DOT/'.' ... It's a token we know
 DFA 'power', state 1: Push ...
 DFA 'trailer', state 0: Shift.
Token NAME/'PyShell' ... It's a token we know
 DFA 'trailer', state 3: Shift.
  DFA 'trailer', state 5: Direct pop.
Token DOT/'.' ... It's a token we know
 DFA 'power', state 1: Push ...
 DFA 'trailer', state 0: Shift.
Token NAME/'main' ... It's a token we know
 DFA 'trailer', state 3: Shift.
  DFA 'trailer', state 5: Direct pop.
Token LPAR/'(' ... It's a token we know
 DFA 'power', state 1: Push ...
 DFA 'trailer', state 0: Shift.
Token RPAR/')' ... It's a token we know
 DFA 'trailer', state 1: Shift.
  DFA 'trailer', state 5: Direct pop.
Token NEWLINE/'' ... It's a token we know
 DFA 'power', state 1: Pop ...
 DFA 'factor', state 2: Pop ...
 DFA 'term', state 1: Pop ...
 DFA 'arith_expr', state 1: Pop ...
 DFA 'shift_expr', state 1: Pop ...
 DFA 'and_expr', state 1: Pop ...
 DFA 'xor_expr', state 1: Pop ...
 DFA 'expr', state 1: Pop ...
 DFA 'comparison', state 1: Pop ...
 DFA 'not_test', state 2: Pop ...
 DFA 'and_test', state 1: Pop ...
 DFA 'or_test', state 1: Pop ...
 DFA 'test', state 1: Pop ...
 DFA 'testlist', state 1: Pop ...
 DFA 'expr_stmt', state 1: Pop ...
 DFA 'small_stmt', state 1: Pop ...
 DFA 'simple_stmt', state 1: Shift.
  DFA 'simple_stmt', state 3: Direct pop.
  DFA 'stmt', state 1: Direct pop.
Token NEWLINE/'' ... It's a token we know
 DFA 'file_input', state 0: Shift.
Token ENDMARKER/'' ... It's a token we know
 DFA 'file_input', state 0: Shift.
  DFA 'file_input', state 1: Direct pop.
  ACCEPT.
并且能够追踪到所有的电话

python27_d.dll!PyEval_EvalCodeEx
python27_d.dll!PyEval_EvalCode
python27_d.dll!run_mod
python27_d.dll!PyRun_FileExFlags
python27_d.dll!PyRun_SimpleFileExFlags
python27_d.dll!PyRun_AnyFileExFlags
python27_d.dll!Py_Main
但是后来被对PyEval\u evalcodex的递归调用缠住了

在此之前,我试图通过procmon比较pythonw.exe的工作版本和pythonw_d.exe的失败调试版本的输出,但效果并不理想

有用数据

  • 64位Windows 7
  • 使用VC9.0作为32位应用程序编译的Python 2.7.6

需要帮助来诊断或指导调试问题

尝试通过转到创建C:目录的路径
控制面板>系统和维护>高级系统设置>系统属性>环境变量>,然后转到路径并添加分号,然后添加python安装的位置。然后调试。

您尝试过自顶向下的方法吗

只需开始单步执行代码。pdb与GUI一起工作就像一个魔咒!如果你不知道pdb,就把它想象成一个普通的>>>和gdb的组合

因此,您可以打印(locals())并进行许多gui调试器无法完成的调试

C:\Python-2.7.6\PCbuild\pythonw_d.exe -m pdb c:\Python-2.7.6\Lib\idlelib\idle.py

(Pdb) help

Documented commands (type help lt topic gt):
========================================
EOF    cl         disable  interact  next     return  u          where
a      clear      display  j         p        retval  unalias
alias  commands   down     jump      pp       run     undisplay
args   condition  enable   l         print    rv      unt
b      cont       exit     list      q        s       until
break  continue   h        ll        quit     source  up
bt     d          help     longlist  r        step    w
c      debug      ignore   n         restart  tbreak  whatis

Miscellaneous help topics:
==========================
pdb  exec

作为一名在Windows上处理IDLE的Python核心开发人员,我为当前的Python版本构建了Python并经常以IDLE运行存储库。这就是我要做的

  • 构建:我从存储库构建新的拉。我使用python.org devguide中推荐的免费MS Visual Studio编译器。对于2.7,这是VS2008。我安装了一个最小的svn客户端来获取外部依赖项。我使用PcBuild/build.bat和-e,-d选项。这可能是一个新问题,因为这个问题被问到了,并且一直有效,与以前的方法相比,这是一个很大的改进。当我第一次运行python_d.exe(3.x中的win32/python_d.exe)时,我将它固定到任务栏上。固定的图标继续用于后续重建

  • 空闲运行:我通常单击python_d.exe图标,然后输入import idlelib.IDLE。交互式Python控制台获取警告和错误消息。在控制台中,
    path\to\python\u d.exe-m idlelib.idle
    .idle
    在3.x中不需要)比键入完整的idlelib.idle路径更容易

  • 无声故障:在过去几年中,大多数故障都已修复,可以通过防止故障或添加错误消息来修复。对于旧版本,可以尝试删除
    $HOME/.idlerc
    中的文件


  • 您是否也构建了Tcl/Tk?空闲需要这些。无论如何,我希望你在这件事上好运。通常在Windows上构建Python的人数约为0;-),但是大多数阅读Python-Dev的人认为这可能会有所帮助。试试看