We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Build failure on Windows when running setup_cython.py
```console
Traceback (most recent call last):

  File "setup_cython.py", line 134, in <module>


    build_extension("_pydevd_bundle", extension_name, target_pydevd_name, force_cython, extension_folder, True)

  File "setup_cython.py", line 95, in build_extension

    c_files,

UnboundLocalError: local variable 'c_files' referenced before assignment

```

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `src/ptvsd/_vendored/pydevd/setup_cython.py`
Content:
```
1 '''
2 A simpler setup version just to compile the speedup module.
3 
4 It should be used as:
5 
6 python setup_cython build_ext --inplace
7 
8 Note: the .c file and other generated files are regenerated from
9 the .pyx file by running "python build_tools/build.py"
10 '''
11 
12 import os
13 import sys
14 from setuptools import setup
15 
16 os.chdir(os.path.dirname(os.path.abspath(__file__)))
17 
18 IS_PY36_OR_GREATER = sys.version_info > (3, 6)
19 
20 
21 def process_args():
22     extension_folder = None
23     target_pydevd_name = None
24     target_frame_eval = None
25     force_cython = False
26 
27     for i, arg in enumerate(sys.argv[:]):
28         if arg == '--build-lib':
29             extension_folder = sys.argv[i + 1]
30             # It shouldn't be removed from sys.argv (among with --build-temp) because they're passed further to setup()
31         if arg.startswith('--target-pyd-name='):
32             sys.argv.remove(arg)
33             target_pydevd_name = arg[len('--target-pyd-name='):]
34         if arg.startswith('--target-pyd-frame-eval='):
35             sys.argv.remove(arg)
36             target_frame_eval = arg[len('--target-pyd-frame-eval='):]
37         if arg == '--force-cython':
38             sys.argv.remove(arg)
39             force_cython = True
40 
41     return extension_folder, target_pydevd_name, target_frame_eval, force_cython
42 
43 
44 def build_extension(dir_name, extension_name, target_pydevd_name, force_cython, extended=False, has_pxd=False):
45     pyx_file = os.path.join(os.path.dirname(__file__), dir_name, "%s.pyx" % (extension_name,))
46 
47     if target_pydevd_name != extension_name:
48         # It MUST be there in this case!
49         # (otherwise we'll have unresolved externals because the .c file had another name initially).
50         import shutil
51 
52         # We must force cython in this case (but only in this case -- for the regular setup in the user machine, we
53         # should always compile the .c file).
54         force_cython = True
55 
56         new_pyx_file = os.path.join(os.path.dirname(__file__), dir_name, "%s.pyx" % (target_pydevd_name,))
57         new_c_file = os.path.join(os.path.dirname(__file__), dir_name, "%s.c" % (target_pydevd_name,))
58         shutil.copy(pyx_file, new_pyx_file)
59         pyx_file = new_pyx_file
60         if has_pxd:
61             pxd_file = os.path.join(os.path.dirname(__file__), dir_name, "%s.pxd" % (extension_name,))
62             new_pxd_file = os.path.join(os.path.dirname(__file__), dir_name, "%s.pxd" % (target_pydevd_name,))
63             shutil.copy(pxd_file, new_pxd_file)
64         assert os.path.exists(pyx_file)
65 
66     try:
67         if force_cython:
68             from Cython.Build import cythonize  # @UnusedImport
69             # Generate the .c files in cythonize (will not compile at this point).
70             cythonize([
71                 "%s/%s.pyx" % (dir_name, target_pydevd_name,),
72             ])
73 
74             # This is needed in CPython 3.8 to access PyInterpreterState.eval_frame.
75             # i.e.: we change #include "pystate.h" to also #include "internal/pycore_pystate.h"
76             # if compiling on Python 3.8.
77             c_files = [os.path.join(dir_name, "%s.c" % target_pydevd_name), ]
78             for c_file in c_files:
79                 with open(c_file, 'r') as stream:
80                     c_file_contents = stream.read()
81 
82                 c_file_contents = c_file_contents.replace('#include "pystate.h"', '''#include "pystate.h"
83 #if PY_VERSION_HEX >= 0x03080000
84 #include "internal/pycore_pystate.h"
85 #endif
86 ''')
87                 c_file_contents = c_file_contents.replace('\r\n', '\n').replace('\r', '\n')
88 
89                 with open(c_file, 'w') as stream:
90                     stream.write(c_file_contents)
91 
92         # Always compile the .c (and not the .pyx) file (which we should keep up-to-date by running build_tools/build.py).
93         from distutils.extension import Extension
94         ext_modules = [Extension("%s%s.%s" % (dir_name, "_ext" if extended else "", target_pydevd_name,),
95                                  c_files,
96                                  # uncomment to generate pdbs for visual studio.
97                                  # extra_compile_args=["-Zi", "/Od"],
98                                  # extra_link_args=["-debug"],
99                                  )]
100 
101         # This is needed in CPython 3.8 to be able to include internal/pycore_pystate.h
102         # (needed to set PyInterpreterState.eval_frame).
103         for module in ext_modules:
104             module.define_macros = [('Py_BUILD_CORE_MODULE', '1')]
105         setup(
106             name='Cythonize',
107             ext_modules=ext_modules
108         )
109     finally:
110         if target_pydevd_name != extension_name:
111             try:
112                 os.remove(new_pyx_file)
113             except:
114                 import traceback
115                 traceback.print_exc()
116             try:
117                 os.remove(new_c_file)
118             except:
119                 import traceback
120                 traceback.print_exc()
121             if has_pxd:
122                 try:
123                     os.remove(new_pxd_file)
124                 except:
125                     import traceback
126                     traceback.print_exc()
127 
128 
129 extension_folder, target_pydevd_name, target_frame_eval, force_cython = process_args()
130 
131 extension_name = "pydevd_cython"
132 if target_pydevd_name is None:
133     target_pydevd_name = extension_name
134 build_extension("_pydevd_bundle", extension_name, target_pydevd_name, force_cython, extension_folder, True)
135 
136 if IS_PY36_OR_GREATER:
137     extension_name = "pydevd_frame_evaluator"
138     if target_frame_eval is None:
139         target_frame_eval = extension_name
140     build_extension("_pydevd_frame_eval", extension_name, target_frame_eval, force_cython, extension_folder, True)
141 
142 if extension_folder:
143     os.chdir(extension_folder)
144     for folder in [file for file in os.listdir(extension_folder) if
145                    file != 'build' and os.path.isdir(os.path.join(extension_folder, file))]:
146         file = os.path.join(folder, "__init__.py")
147         if not os.path.exists(file):
148             open(file, 'a').close()
149
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/src/ptvsd/_vendored/pydevd/setup_cython.py b/src/ptvsd/_vendored/pydevd/setup_cython.py
--- a/src/ptvsd/_vendored/pydevd/setup_cython.py
+++ b/src/ptvsd/_vendored/pydevd/setup_cython.py
@@ -64,7 +64,13 @@
         assert os.path.exists(pyx_file)
 
     try:
+        c_files = [os.path.join(dir_name, "%s.c" % target_pydevd_name), ]
         if force_cython:
+            for c_file in c_files:
+                try:
+                    os.remove(c_file)
+                except:
+                    pass
             from Cython.Build import cythonize  # @UnusedImport
             # Generate the .c files in cythonize (will not compile at this point).
             cythonize([
@@ -74,17 +80,23 @@
             # This is needed in CPython 3.8 to access PyInterpreterState.eval_frame.
             # i.e.: we change #include "pystate.h" to also #include "internal/pycore_pystate.h"
             # if compiling on Python 3.8.
-            c_files = [os.path.join(dir_name, "%s.c" % target_pydevd_name), ]
             for c_file in c_files:
                 with open(c_file, 'r') as stream:
                     c_file_contents = stream.read()
 
-                c_file_contents = c_file_contents.replace('#include "pystate.h"', '''#include "pystate.h"
+                if '#include "internal/pycore_pystate.h"' not in c_file_contents:
+                    c_file_contents = c_file_contents.replace('#include "pystate.h"', '''#include "pystate.h"
 #if PY_VERSION_HEX >= 0x03080000
 #include "internal/pycore_pystate.h"
 #endif
 ''')
+
+                # We want the same output on Windows and Linux.
                 c_file_contents = c_file_contents.replace('\r\n', '\n').replace('\r', '\n')
+                c_file_contents = c_file_contents.replace(r'_pydevd_frame_eval\\release_mem.h', '_pydevd_frame_eval/release_mem.h')
+                c_file_contents = c_file_contents.replace(r'_pydevd_frame_eval\\pydevd_frame_evaluator.pyx', '_pydevd_frame_eval/pydevd_frame_evaluator.pyx')
+                c_file_contents = c_file_contents.replace(r'_pydevd_bundle\\pydevd_cython.pxd', '_pydevd_bundle/pydevd_cython.pxd')
+                c_file_contents = c_file_contents.replace(r'_pydevd_bundle\\pydevd_cython.pyx', '_pydevd_bundle/pydevd_cython.pyx')
 
                 with open(c_file, 'w') as stream:
                     stream.write(c_file_contents)

{"golden_diff": "diff --git a/src/ptvsd/_vendored/pydevd/setup_cython.py b/src/ptvsd/_vendored/pydevd/setup_cython.py\n--- a/src/ptvsd/_vendored/pydevd/setup_cython.py\n+++ b/src/ptvsd/_vendored/pydevd/setup_cython.py\n@@ -64,7 +64,13 @@\n         assert os.path.exists(pyx_file)\n \n     try:\n+        c_files = [os.path.join(dir_name, \"%s.c\" % target_pydevd_name), ]\n         if force_cython:\n+            for c_file in c_files:\n+                try:\n+                    os.remove(c_file)\n+                except:\n+                    pass\n             from Cython.Build import cythonize  # @UnusedImport\n             # Generate the .c files in cythonize (will not compile at this point).\n             cythonize([\n@@ -74,17 +80,23 @@\n             # This is needed in CPython 3.8 to access PyInterpreterState.eval_frame.\n             # i.e.: we change #include \"pystate.h\" to also #include \"internal/pycore_pystate.h\"\n             # if compiling on Python 3.8.\n-            c_files = [os.path.join(dir_name, \"%s.c\" % target_pydevd_name), ]\n             for c_file in c_files:\n                 with open(c_file, 'r') as stream:\n                     c_file_contents = stream.read()\n \n-                c_file_contents = c_file_contents.replace('#include \"pystate.h\"', '''#include \"pystate.h\"\n+                if '#include \"internal/pycore_pystate.h\"' not in c_file_contents:\n+                    c_file_contents = c_file_contents.replace('#include \"pystate.h\"', '''#include \"pystate.h\"\n #if PY_VERSION_HEX >= 0x03080000\n #include \"internal/pycore_pystate.h\"\n #endif\n ''')\n+\n+                # We want the same output on Windows and Linux.\n                 c_file_contents = c_file_contents.replace('\\r\\n', '\\n').replace('\\r', '\\n')\n+                c_file_contents = c_file_contents.replace(r'_pydevd_frame_eval\\\\release_mem.h', '_pydevd_frame_eval/release_mem.h')\n+                c_file_contents = c_file_contents.replace(r'_pydevd_frame_eval\\\\pydevd_frame_evaluator.pyx', '_pydevd_frame_eval/pydevd_frame_evaluator.pyx')\n+                c_file_contents = c_file_contents.replace(r'_pydevd_bundle\\\\pydevd_cython.pxd', '_pydevd_bundle/pydevd_cython.pxd')\n+                c_file_contents = c_file_contents.replace(r'_pydevd_bundle\\\\pydevd_cython.pyx', '_pydevd_bundle/pydevd_cython.pyx')\n \n                 with open(c_file, 'w') as stream:\n                     stream.write(c_file_contents)\n", "issue": "Build failure on Windows when running setup_cython.py\n```console\r\nTraceback (most recent call last):\r\n\r\n  File \"setup_cython.py\", line 134, in <module>\r\n\r\n\r\n    build_extension(\"_pydevd_bundle\", extension_name, target_pydevd_name, force_cython, extension_folder, True)\r\n\r\n  File \"setup_cython.py\", line 95, in build_extension\r\n\r\n    c_files,\r\n\r\nUnboundLocalError: local variable 'c_files' referenced before assignment\r\n\r\n```\n", "before_files": [{"content": "'''\nA simpler setup version just to compile the speedup module.\n\nIt should be used as:\n\npython setup_cython build_ext --inplace\n\nNote: the .c file and other generated files are regenerated from\nthe .pyx file by running \"python build_tools/build.py\"\n'''\n\nimport os\nimport sys\nfrom setuptools import setup\n\nos.chdir(os.path.dirname(os.path.abspath(__file__)))\n\nIS_PY36_OR_GREATER = sys.version_info > (3, 6)\n\n\ndef process_args():\n    extension_folder = None\n    target_pydevd_name = None\n    target_frame_eval = None\n    force_cython = False\n\n    for i, arg in enumerate(sys.argv[:]):\n        if arg == '--build-lib':\n            extension_folder = sys.argv[i + 1]\n            # It shouldn't be removed from sys.argv (among with --build-temp) because they're passed further to setup()\n        if arg.startswith('--target-pyd-name='):\n            sys.argv.remove(arg)\n            target_pydevd_name = arg[len('--target-pyd-name='):]\n        if arg.startswith('--target-pyd-frame-eval='):\n            sys.argv.remove(arg)\n            target_frame_eval = arg[len('--target-pyd-frame-eval='):]\n        if arg == '--force-cython':\n            sys.argv.remove(arg)\n            force_cython = True\n\n    return extension_folder, target_pydevd_name, target_frame_eval, force_cython\n\n\ndef build_extension(dir_name, extension_name, target_pydevd_name, force_cython, extended=False, has_pxd=False):\n    pyx_file = os.path.join(os.path.dirname(__file__), dir_name, \"%s.pyx\" % (extension_name,))\n\n    if target_pydevd_name != extension_name:\n        # It MUST be there in this case!\n        # (otherwise we'll have unresolved externals because the .c file had another name initially).\n        import shutil\n\n        # We must force cython in this case (but only in this case -- for the regular setup in the user machine, we\n        # should always compile the .c file).\n        force_cython = True\n\n        new_pyx_file = os.path.join(os.path.dirname(__file__), dir_name, \"%s.pyx\" % (target_pydevd_name,))\n        new_c_file = os.path.join(os.path.dirname(__file__), dir_name, \"%s.c\" % (target_pydevd_name,))\n        shutil.copy(pyx_file, new_pyx_file)\n        pyx_file = new_pyx_file\n        if has_pxd:\n            pxd_file = os.path.join(os.path.dirname(__file__), dir_name, \"%s.pxd\" % (extension_name,))\n            new_pxd_file = os.path.join(os.path.dirname(__file__), dir_name, \"%s.pxd\" % (target_pydevd_name,))\n            shutil.copy(pxd_file, new_pxd_file)\n        assert os.path.exists(pyx_file)\n\n    try:\n        if force_cython:\n            from Cython.Build import cythonize  # @UnusedImport\n            # Generate the .c files in cythonize (will not compile at this point).\n            cythonize([\n                \"%s/%s.pyx\" % (dir_name, target_pydevd_name,),\n            ])\n\n            # This is needed in CPython 3.8 to access PyInterpreterState.eval_frame.\n            # i.e.: we change #include \"pystate.h\" to also #include \"internal/pycore_pystate.h\"\n            # if compiling on Python 3.8.\n            c_files = [os.path.join(dir_name, \"%s.c\" % target_pydevd_name), ]\n            for c_file in c_files:\n                with open(c_file, 'r') as stream:\n                    c_file_contents = stream.read()\n\n                c_file_contents = c_file_contents.replace('#include \"pystate.h\"', '''#include \"pystate.h\"\n#if PY_VERSION_HEX >= 0x03080000\n#include \"internal/pycore_pystate.h\"\n#endif\n''')\n                c_file_contents = c_file_contents.replace('\\r\\n', '\\n').replace('\\r', '\\n')\n\n                with open(c_file, 'w') as stream:\n                    stream.write(c_file_contents)\n\n        # Always compile the .c (and not the .pyx) file (which we should keep up-to-date by running build_tools/build.py).\n        from distutils.extension import Extension\n        ext_modules = [Extension(\"%s%s.%s\" % (dir_name, \"_ext\" if extended else \"\", target_pydevd_name,),\n                                 c_files,\n                                 # uncomment to generate pdbs for visual studio.\n                                 # extra_compile_args=[\"-Zi\", \"/Od\"],\n                                 # extra_link_args=[\"-debug\"],\n                                 )]\n\n        # This is needed in CPython 3.8 to be able to include internal/pycore_pystate.h\n        # (needed to set PyInterpreterState.eval_frame).\n        for module in ext_modules:\n            module.define_macros = [('Py_BUILD_CORE_MODULE', '1')]\n        setup(\n            name='Cythonize',\n            ext_modules=ext_modules\n        )\n    finally:\n        if target_pydevd_name != extension_name:\n            try:\n                os.remove(new_pyx_file)\n            except:\n                import traceback\n                traceback.print_exc()\n            try:\n                os.remove(new_c_file)\n            except:\n                import traceback\n                traceback.print_exc()\n            if has_pxd:\n                try:\n                    os.remove(new_pxd_file)\n                except:\n                    import traceback\n                    traceback.print_exc()\n\n\nextension_folder, target_pydevd_name, target_frame_eval, force_cython = process_args()\n\nextension_name = \"pydevd_cython\"\nif target_pydevd_name is None:\n    target_pydevd_name = extension_name\nbuild_extension(\"_pydevd_bundle\", extension_name, target_pydevd_name, force_cython, extension_folder, True)\n\nif IS_PY36_OR_GREATER:\n    extension_name = \"pydevd_frame_evaluator\"\n    if target_frame_eval is None:\n        target_frame_eval = extension_name\n    build_extension(\"_pydevd_frame_eval\", extension_name, target_frame_eval, force_cython, extension_folder, True)\n\nif extension_folder:\n    os.chdir(extension_folder)\n    for folder in [file for file in os.listdir(extension_folder) if\n                   file != 'build' and os.path.isdir(os.path.join(extension_folder, file))]:\n        file = os.path.join(folder, \"__init__.py\")\n        if not os.path.exists(file):\n            open(file, 'a').close()\n", "path": "src/ptvsd/_vendored/pydevd/setup_cython.py"}], "after_files": [{"content": "'''\nA simpler setup version just to compile the speedup module.\n\nIt should be used as:\n\npython setup_cython build_ext --inplace\n\nNote: the .c file and other generated files are regenerated from\nthe .pyx file by running \"python build_tools/build.py\"\n'''\n\nimport os\nimport sys\nfrom setuptools import setup\n\nos.chdir(os.path.dirname(os.path.abspath(__file__)))\n\nIS_PY36_OR_GREATER = sys.version_info > (3, 6)\n\n\ndef process_args():\n    extension_folder = None\n    target_pydevd_name = None\n    target_frame_eval = None\n    force_cython = False\n\n    for i, arg in enumerate(sys.argv[:]):\n        if arg == '--build-lib':\n            extension_folder = sys.argv[i + 1]\n            # It shouldn't be removed from sys.argv (among with --build-temp) because they're passed further to setup()\n        if arg.startswith('--target-pyd-name='):\n            sys.argv.remove(arg)\n            target_pydevd_name = arg[len('--target-pyd-name='):]\n        if arg.startswith('--target-pyd-frame-eval='):\n            sys.argv.remove(arg)\n            target_frame_eval = arg[len('--target-pyd-frame-eval='):]\n        if arg == '--force-cython':\n            sys.argv.remove(arg)\n            force_cython = True\n\n    return extension_folder, target_pydevd_name, target_frame_eval, force_cython\n\n\ndef build_extension(dir_name, extension_name, target_pydevd_name, force_cython, extended=False, has_pxd=False):\n    pyx_file = os.path.join(os.path.dirname(__file__), dir_name, \"%s.pyx\" % (extension_name,))\n\n    if target_pydevd_name != extension_name:\n        # It MUST be there in this case!\n        # (otherwise we'll have unresolved externals because the .c file had another name initially).\n        import shutil\n\n        # We must force cython in this case (but only in this case -- for the regular setup in the user machine, we\n        # should always compile the .c file).\n        force_cython = True\n\n        new_pyx_file = os.path.join(os.path.dirname(__file__), dir_name, \"%s.pyx\" % (target_pydevd_name,))\n        new_c_file = os.path.join(os.path.dirname(__file__), dir_name, \"%s.c\" % (target_pydevd_name,))\n        shutil.copy(pyx_file, new_pyx_file)\n        pyx_file = new_pyx_file\n        if has_pxd:\n            pxd_file = os.path.join(os.path.dirname(__file__), dir_name, \"%s.pxd\" % (extension_name,))\n            new_pxd_file = os.path.join(os.path.dirname(__file__), dir_name, \"%s.pxd\" % (target_pydevd_name,))\n            shutil.copy(pxd_file, new_pxd_file)\n        assert os.path.exists(pyx_file)\n\n    try:\n        c_files = [os.path.join(dir_name, \"%s.c\" % target_pydevd_name), ]\n        if force_cython:\n            for c_file in c_files:\n                try:\n                    os.remove(c_file)\n                except:\n                    pass\n            from Cython.Build import cythonize  # @UnusedImport\n            # Generate the .c files in cythonize (will not compile at this point).\n            cythonize([\n                \"%s/%s.pyx\" % (dir_name, target_pydevd_name,),\n            ])\n\n            # This is needed in CPython 3.8 to access PyInterpreterState.eval_frame.\n            # i.e.: we change #include \"pystate.h\" to also #include \"internal/pycore_pystate.h\"\n            # if compiling on Python 3.8.\n            for c_file in c_files:\n                with open(c_file, 'r') as stream:\n                    c_file_contents = stream.read()\n\n                if '#include \"internal/pycore_pystate.h\"' not in c_file_contents:\n                    c_file_contents = c_file_contents.replace('#include \"pystate.h\"', '''#include \"pystate.h\"\n#if PY_VERSION_HEX >= 0x03080000\n#include \"internal/pycore_pystate.h\"\n#endif\n''')\n\n                # We want the same output on Windows and Linux.\n                c_file_contents = c_file_contents.replace('\\r\\n', '\\n').replace('\\r', '\\n')\n                c_file_contents = c_file_contents.replace(r'_pydevd_frame_eval\\\\release_mem.h', '_pydevd_frame_eval/release_mem.h')\n                c_file_contents = c_file_contents.replace(r'_pydevd_frame_eval\\\\pydevd_frame_evaluator.pyx', '_pydevd_frame_eval/pydevd_frame_evaluator.pyx')\n                c_file_contents = c_file_contents.replace(r'_pydevd_bundle\\\\pydevd_cython.pxd', '_pydevd_bundle/pydevd_cython.pxd')\n                c_file_contents = c_file_contents.replace(r'_pydevd_bundle\\\\pydevd_cython.pyx', '_pydevd_bundle/pydevd_cython.pyx')\n\n                with open(c_file, 'w') as stream:\n                    stream.write(c_file_contents)\n\n        # Always compile the .c (and not the .pyx) file (which we should keep up-to-date by running build_tools/build.py).\n        from distutils.extension import Extension\n        ext_modules = [Extension(\"%s%s.%s\" % (dir_name, \"_ext\" if extended else \"\", target_pydevd_name,),\n                                 c_files,\n                                 # uncomment to generate pdbs for visual studio.\n                                 # extra_compile_args=[\"-Zi\", \"/Od\"],\n                                 # extra_link_args=[\"-debug\"],\n                                 )]\n\n        # This is needed in CPython 3.8 to be able to include internal/pycore_pystate.h\n        # (needed to set PyInterpreterState.eval_frame).\n        for module in ext_modules:\n            module.define_macros = [('Py_BUILD_CORE_MODULE', '1')]\n        setup(\n            name='Cythonize',\n            ext_modules=ext_modules\n        )\n    finally:\n        if target_pydevd_name != extension_name:\n            try:\n                os.remove(new_pyx_file)\n            except:\n                import traceback\n                traceback.print_exc()\n            try:\n                os.remove(new_c_file)\n            except:\n                import traceback\n                traceback.print_exc()\n            if has_pxd:\n                try:\n                    os.remove(new_pxd_file)\n                except:\n                    import traceback\n                    traceback.print_exc()\n\n\nextension_folder, target_pydevd_name, target_frame_eval, force_cython = process_args()\n\nextension_name = \"pydevd_cython\"\nif target_pydevd_name is None:\n    target_pydevd_name = extension_name\nbuild_extension(\"_pydevd_bundle\", extension_name, target_pydevd_name, force_cython, extension_folder, True)\n\nif IS_PY36_OR_GREATER:\n    extension_name = \"pydevd_frame_evaluator\"\n    if target_frame_eval is None:\n        target_frame_eval = extension_name\n    build_extension(\"_pydevd_frame_eval\", extension_name, target_frame_eval, force_cython, extension_folder, True)\n\nif extension_folder:\n    os.chdir(extension_folder)\n    for folder in [file for file in os.listdir(extension_folder) if\n                   file != 'build' and os.path.isdir(os.path.join(extension_folder, file))]:\n        file = os.path.join(folder, \"__init__.py\")\n        if not os.path.exists(file):\n            open(file, 'a').close()\n", "path": "src/ptvsd/_vendored/pydevd/setup_cython.py"}]}