es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

v8 sin variables locales en el depurador

Compilé v8 en Linux Min 20.2 usando VsCode.

Mi tarea de compilación tasks.json se ve así:

 "tasks": [
 {
   "label": "gm x64.debug all",
   "type": "shell",
   "command": "tools/dev/gm.py x64.debug all",
   "group": {
     "kind": "build",
     "isDefault": true
   },
   "presentation": {
     "reveal": "always",
     "panel": "dedicated",
     "clear": true
   },
   "problemMatcher": {
     "fileLocation": [
       "relative",
       "${workspaceFolder}out/x64.debug/"
     ],
     "pattern": {
       "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
       "file": 1,
       "line": 2,
       "column": 3,
       "severity": 4,
       "message": 5
     }
   }
 }

Configuración launch.json:

    {
        "name": "(gdb) launch hello_world",
        "type": "cppdbg",
        "request": "launch",
        "program": "${workspaceFolder}/out/x64.debug/v8_hello_world",
        "args": [],
        "stopAtEntry": false,
        "cwd": "${fileDirname}",
        "environment": [],
        "externalConsole": false,
        "MIMode": "gdb",
        "setupCommands": [
            {
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            }
        ]
    },

Los puntos de interrupción funcionan bien y el registro de llamadas está disponible, pero no hay variables locales.

Estoy usando la extensión “C/C++ (by Microsoft)”.

¿Cómo puedo habilitarlas?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para habilitar las variables locales mientras depura V8 en VSCode, puede agregar la siguiente configuración a su archivo launch.json:

    "configuration": [
      {
        "name": "(gdb) launch hello_world",
        "type": "cppdbg",
        "request": "launch",
        "program": "${workspaceFolder}/out/x64.debug/v8_hello_world",
        "args": [],
        "stopAtEntry": false,
        "cwd": "${fileDirname}",
        "environment": [],
        "externalConsole": false,
        "MIMode": "gdb",
        "setupCommands": [
          {
            "description": "Habilitar pretty-printing para gdb",
            "text": "-enable-pretty-printing",
            "ignoreFailures": true
          }
        ],
        "visualizerFile": "${workspaceFolder}/tools/gdb/mi/visualize.py",
        "visualizers": [
          {
            "name": "Valor de v8",
            "typeName": "v8::Value",
            "children": [
              {"name":"type_","type":"@$T","children":[],"value":"$typeid"},
              {"name":"value_","type":"$T","children":[],"value":"$value"}
            ]
          }
        ],
        "setupTransport": {
          "enable": true
        }
      }
    ]
    

    La configuración clave aquí son las propiedades visualizerFile yvisualizers. Esto permitirá visualizar las variables locales en VSCode mientras depura V8.

    Asegúrese de también tener instaladas las dependencias necesarias, como python-magic ypygments, que son utilizadas por el script de visualización.

Comments are closed.