Última actualización:2026-10-12
dbg-macro, macro de depuración para C++¶
Escribir logs es una forma indispensable de depurar en el desarrollo con C++. dbg-macro, inspirado en el dbg del lenguaje Rust, ofrece funciones macro mejores que printf y std::cout. Sus principales características son:
- Salida coloreada y atractiva (cuando la salida no es un terminal interactivo, los colores se deshabilitan automáticamente)
- Compatible con C++11 y header-only
- Admite la salida de tipos básicos y de tipos de contenedores STL
- Puede imprimir el nombre del archivo, el número de línea, el nombre de la función y la expresión original
Por ejemplo, el siguiente código:
#include <vector>
#include <dbg.h>
// You can use "dbg(..)" in expressions:
int factorial(int n) {
if (dbg(n <= 1)) {
return dbg(1);
} else {
return dbg(n * factorial(n - 1));
}
}
int main() {
std::string message = "hello";
dbg(message); // [example.cpp:15 (main)] message = "hello" (std::string)
const int a = 2;
const int b = dbg(3 * a) + 1; // [example.cpp:18 (main)] 3 * a = 6 (int)
std::vector<int> numbers{b, 13, 42};
dbg(numbers); // [example.cpp:21 (main)] numbers = {7, 13, 42} (size: 3) (std::vector<int>)
dbg("this line is executed"); // [example.cpp:23 (main)] this line is executed
factorial(4);
return 0;
}
El efecto es el siguiente:
Instalación¶
git clone https://github.com/sharkdp/dbg-macro
sudo ln -s $(readlink -f dbg-macro/dbg.h) /usr/include/dbg.h
De este modo, ya podrás usar dbg.h en cualquier parte.
En Arch Linux¶
Usando vcpkg¶
Para más contenido, consulta la documentación oficial.
Temas relacionados¶
- Construir proyectos C++ con Bazel | C++那些事
- Depuración conjunta de Bazel y LLDB | C++那些事
- CMake: introducción y práctica | C++那些事
- Introducción a Conan, gestor de paquetes de C++ | C++那些事
- C++ Insights: observación en tiempo de compilación | C++那些事
- C++ Jupyter Notebook interactivo | C++那些事
- Convertir string a int en C++ | C++那些事
- Explicación detallada de las opciones de compilación de GCC | C++那些事
- Depurar programas C++ con GDB | C++那些事
- Depuración con la extensión Python de GDB | C++那些事