feed

C/C++

Punteros y referencias

Muchos novatos o gente que viene de lenguajes de alto nivel no quieren ni oír hablar de C/C++. se oyen cosas como que es muy complicado porque hay que manejar la memoria a bajo nivel, no tiene recolector de basura, etc. Vamos a intentar explicar claramente el manejo de memoria en C/C++ y los temidos punteros y referencias.

La memoria principal

Como sabemos cuando declaramos una variable lo que estamos haciendo es reservar una zona de memoria, imaginemos que la memoria es una tabla con muchas...

Leer más »

Estructura del código fuente en C++

Si bien un programa escrito en C++ se podría hacer en un único fichero de texto, cualquier proyecto serio requiere que el código fuente de un programa se divida en varios ficheros para que sea manejable, muchos principiantes no se dan cuenta de la importancia de esto, sobre todo porque mucho lo han intentado y les ha dado más problemas que soluciones. En este artículo vamos a explicar como...

Leer más »

¿Cómo funciona el memory breakpoint en un depurador de C/C++? (breakpoints part III)

Desensamblador y Depurador IDA corriendo en Windows

En el último artículo de la serie vimos lo útiles que pueden llegar a ser los hardware breakpoints para depurar aplicaciones que por ejemplo hacen comprobaciones de CRC y no pueden ser depuradas modificando sus datos en memoria.

Hoy vamos a ver como podemos utilizar memory breakpoints para sobrepasar los límites impuestos por los hardware...

Leer más »

¿Cómo funciona el hardware breakpoint en un depurador de C/C++? (breakpoints part II)

Ayer vimos como el depurador reemplaza el primer byte de un opcode en una dirección de memoria específica donde, previamente, hemos fijado un breakpoint y donde colocamos el opcode 0xcc o lo que es lo mismo la instrucción int 3 que le indica al procesador que se detenga y lance un evento de depurado que es capturado por el depurador.

También vimos que en este proceso, al sobreescribir parte de la...

Leer más »

¿Cómo funciona el breakpoint en un depurador de C/C++?

Y llegamos al punto caliente de nuestra serie sobre el funcionamiento de los depuradores de C y C++. Ya sabemos como funciona la CPU y la pila de la memoria. También sabemos que son los eventos de depurado y que el sistema operativo ofrece una interfaz para atraparlos.

Hoy vamos a hablar en profundidad sobre los puntos de interrupción o “breakpoints“ que son sin duda la parte fundamental de...

Leer más »

Dev-C++ resurge de sus cenizas: ya disponible la versión no oficial 5.2.0.0


Los viejos rockeros recordarán con nostalgia Dev-C++, uno de los entornos más populares para el desarrollo en C++ bajo Windows. Este IDE, que curiosamente estaba programado en Delphi, acaparó a buena parte de los desarrolladores y era el producto estrella de Bloodshed Software, que sin embargo dejó de actualizarlo en febrero de 2005.

Pero cuando todo apuntaba a que el proyecto había muerto en su...

Leer más »

¿Cómo funciona un depurador de C/C++? (Parte III)

En esta serie ya hemos hablado sobre los registros de carácter general del procesador en arquitectura x86 y de como funciona la pila o stack. Ambos conceptos son completamente necesarios para lograr entender en profundidad como funciona un depurador.

Hoy vamos a hablar sobre los eventos de depurado . De forma abstracta, un depurador no es más que un bucle sin fin que espera a que sucedan eventos...

Leer más »

¿Cómo funciona un depurador de C/C++? (Parte II)

Ayer hablábamos sobre la CPU y los registros de propósito general para entender como procesa a bajo nivel el hardware de nuestro sistema el código compilado al interpretar los opcodes que generan los compiladores.

Hoy vamos a ver muy brevemente como funciona la memoria y más específicamente la pila en la arquitectura x86. De esta forma todos estos conceptos no nos serán arcanos cuando entremos en...

Leer más »

Los grandes proyectos informáticos se programan en C y C++


En Genbeta Dev más de una vez os hemos dado datos actuales del índice TIOBE, como los de este mes de abril donde >C adelantó a Java como lenguaje más usado. Se podría decir que este índice mide la popularidad de un lenguaje, ya que representa la cantidad de proyectos nuevos que se inician en dicho lenguaje, motivo por el cual Objective-C no para de crecer últimamente gracias al desarrollo para...

Leer más »

¿Cómo funciona un depurador de C/C++? (Parte I)

Todos aquellos programadores que hayan programado en C o C++ conocen los típicos depuradores de código disponibles para el código máquina generado por el compilador de dichos lenguajes.

Dependiendo del sistema operativo estaremos acostumbrados a gdb y sus amigos (ddd, kgdb, etc, etc), LLDB, WinDbg, OllyDbg , etc. No vamos a entrar en cual de estos depuradores es mejor sino que vamos a hacer un...

Leer más »