Archivo
Archivo
Etiquetas
Etiquetas
Entradas populares de este blog
Hacer un select readonly con jQuery
Listado de palabras en castellano
Instalar llnode en macOS Big Sur
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
El complemento llnode agrega la capacidad de inspeccionar el código fuente JavaScript a las funciones de depuración estándar de C / C ++ cuando se trabaja con procesos Node.js o volcados de núcleo en LLDB. Digamos que es la herramienta imprescindible si queremos detectar fallos en la gestión de memoria en nuestro código.
Entorno
- macOS Big Sur 11.2.3
- node 14.15.4
- lldb-1200.0.44.2
Al ser llnode un plugin para lldb necesitamos instalar este primero, en el caso de macOS es suficiente con instalar las herramientas de consola de Xcode, nada más, no es necesario tener la versión completa instalada.
sudo xcode-select --install
Para comprobar que todo es correcto podemos utilizar
lldb --version
Ahora vamos a instalar llnode y la mejor manera es utilizando brew:
brew install llnode
Es importante tener en cuenta que esto solo nos instala el plugin pero no lo vincula con lldb ni genera un comando con el que podamos llamar a llnode desde consola directamente así que es normal que una vez instalado tengamos esto si lo intentamos llamar desde consola:
% llnode
zsh: command not found: llnode
Para comprobar realmente que el plugin se ha instalado correctamente podemos utilizar el siguiente truco, que además nos dará la ruta donde se ha instalado, dato necesario para los siguientes pasos.
brew link llnode
Warning: Already linked: /usr/local/Cellar/llnode/3.2.0_1
To relink:
brew unlink llnode && brew link llnode
Una vez instalado tenemos que vincular (o agregar) llnode a nuestra instalación de lldb. Para activar este plugin basta con editar el archivo ~/.lldbinit y agregar la siguiente línea:
plugin load /usr/local/Cellar/llnode/3.2.0_1/llnode.dylib
Ahora solo nos queda utilizarlo. llnode puede correr con un proceso existente o con un volcado del core, en este post voy a utilizar la segunda opción. Primero necesitamos el PID del proceso de Node sobre el cual queremos generar el volcado, una vez tenemos este dato (ps aux | grep node) generamos el volcado:
lldb --attach-pid {PID} -b -o 'process save-core "core.{PID}"'
Con esto ya podemos utilizar llnode
lldb
(lldb) target create node -c core.{PID}
(lldb) v8 nodeinfo
(lldb) v8 findjsobjects
Podéis encontrar información adicional en estos enlaces, pero no sigáis esas instrucciones de instalción
Otras formas de instalar llnode en Big Sur pueden dar diferentes errores, como los siguientes:
npm install -g llnode
Reading lldb version...
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory
'/Library/Developer/CommandLineTools' is a command line tools instance
Error: Command failed: xcodebuild -version
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory
'/Library/Developer/CommandLineTools' is a command line tools instance
brew update && brew install --with-lldb --with-toolchain llvm
Error: invalid option: --with-lldb
Comentarios