Débogage avec VS2013 sur un programme sans optimisation, mais toujours aucun symbole dans le contexte actuel pour les variables locales

J’essaie de déboguer Python2.7 pour en savoir plus sur le fonctionnement de python.

Quand j’essayais de déboguer ceval.c à la ligne 4399, j’ai remarqué que je ne voyais pas l’intérêt d’ arg pour arg dans mon IDE, j’avais vérifié que l’optimisation était désactivée et que l’option / DEBUG était activée.

  1. J’ai regardé le désassemblage et je vois que arg a une valeur, le code a été exécuté.
  2. J’ai essayé de déboguer dans VS2013 et VS2017, les deux sont les mêmes même PDB est chargé
  3. J’ai essayé avec WinDbg en utilisant la commande dv , il est toujours impossible de voir les variables locales

ma commande de compilation est:

 /GS /analyze- /W3 /Gy /Zc:wchar_t /I"H:\project\cpython-2.7\Include" /I"H:\project\cpython-2.7\PC" /Zi /Gm- /Od /Fd"H:\project\cpython-2.7\PCbuild\obj\win32_Debug\python\vc120.pdb" /fp:precise /D "_CONSOLE" /D "WIN32" /D "_WIN32" /D "_DEBUG" /D "_MBCS" /errorReport:prompt /GF /WX- /Zc:forScope /Gd /Oy- /MDd /Fa"H:\project\cpython-2.7\PCbuild\obj\win32_Debug\python\" /nologo /Fo"H:\project\cpython-2.7\PCbuild\obj\win32_Debug\python\" /Fp"H:\project\cpython-2.7\PCbuild\obj\win32_Debug\python\python_d.pch" 

ma commande de lien est:

 /OUT:"H:\project\cpython-2.7\PCBuild\python_d.exe" /MANIFEST:NO /NXCOMPAT /PDB:"H:\project\cpython-2.7\PCBuild\python_d.pdb" /DYNAMICBASE "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" "H:\project\cpython-2.7\PCBuild\python27_d.lib" /STACK:"2000000" /DEBUG /BASE:"0x1d000000" /MACHINE:X86 /NODEFAULTLIB:"LIBC" /SAFESEH /PGD:"H:\project\cpython-2.7\PCBuild\python_d.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"H:\project\cpython-2.7\PCbuild\obj\win32_Debug\python\python_d.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"H:\project\cpython-2.7\PCBuild\" /TLBID:1 

jusqu’à présent, je ne peux lire que pp_stack et oparg , je ne peux lire la valeur d’aucune variable locale

 static PyObject * call_function(PyObject ***pp_stack, int oparg #ifdef WITH_TSC , uint64* pintr0, uint64* pintr1 #endif ) { int na = oparg & 0xff; int nk = (oparg>>8) & 0xff; int n = na + 2 * nk; PyObject **pfunc = (*pp_stack) - n - 1; PyObject *func = *pfunc; PyObject *x, *w; /* Always dispatch PyCFunction first, because these are presumed to be the most frequent callable object. */ if (PyCFunction_Check(func) && nk == 0) { int flags = PyCFunction_GET_FLAGS(func); PyThreadState *tstate = PyThreadState_GET(); PCALL(PCALL_CFUNCTION); if (flags & (METH_NOARGS | METH_O)) { PyCFunction meth = PyCFunction_GET_FUNCTION(func); PyObject *self = PyCFunction_GET_SELF(func); if (flags & METH_NOARGS && na == 0) { C_TRACE(x, (*meth)(self,NULL)); } else if (flags & METH_O && na == 1) { //PyObject *arg = EXT_POP(*pp_stack); //EXT_POP------------------- PyObject *arg = (PyObject*)((void)(lltrace && prtrace((*pp_stack)[-1], "ext_pop")), *--(*pp_stack)); 

alors dans ce cas, où est le problème? pourquoi je ne peux pas voir la valeur de l’IDE?

entrez la description de l'image ici

entrez la description de l'image ici

PDB est chargé mais je ne peux voir qu'une partie de la variable