Articles of linux

¿La mejor forma de invocar gdb desde el progtwig para imprimir stacktrace?

Usando una función como esta: #include #include #include #include void print_trace() { char pid_buf[30]; sprintf(pid_buf, “–pid=%d”, getpid()); char name_buf[512]; name_buf[readlink(“/proc/self/exe”, name_buf, 511)]=0; int child_pid = fork(); if (!child_pid) { dup2(2,1); // redirect output to stderr fprintf(stdout,”stack trace for %s pid=%s\n”,name_buf,pid_buf); execlp(“gdb”, “gdb”, “–batch”, “-n”, “-ex”, “thread”, “-ex”, “bt”, name_buf, pid_buf, NULL); abort(); /* If gdb […]

¿Qué son vdso y vsyscall?

Hice sudo cat /proc/1/maps -vv Estoy intentando dar sentido a la salida. Puedo ver muchas bibliotecas compartidas mapeadas al segmento de mapeo de memoria como se esperaba. 7f3c00137000-7f3c00179000 r-xp 00000000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c00179000-7f3c00379000 —p 00042000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c00379000-7f3c0037a000 r–p 00042000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c0037a000-7f3c0037b000 rw-p 00043000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c0037b000-7f3c00383000 r-xp 00000000 08:01 […]

¿Alguna forma de ejecutar comandos de shell en Android programáticamente?

¿Hay alguna forma de ejecutar comandos de terminal en mi aplicación y luego acceder a los datos en mi UI? Específicamente top .

Cómo comstackr un binario de 32 bits en una máquina Linux de 64 bits con gcc / cmake

¿Es posible comstackr un proyecto en 32 bits con cmake y gcc en un sistema de 64 bits ? Probablemente lo sea, pero ¿cómo lo hago? Cuando lo probé de la manera “ignorante”, sin establecer parámetros / indicadores / etc, simplemente estableciendo LD_LIBRARY_PATH para encontrar las bibliotecas vinculadas en ~/tools/lib , parece ignorarlo y solo […]

bash: captura automáticamente la salida del último comando ejecutado en una variable

Me gustaría poder utilizar el resultado del último comando ejecutado en un comando posterior. Por ejemplo, $ find . -name foo.txt ./home/user/some/directory/foo.txt Ahora digamos que quiero poder abrir el archivo en un editor, o eliminarlo, o hacer algo más con él, por ejemplo mv /some/new/location ¿Cómo puedo hacerlo? ¿Tal vez usando alguna variable bash? Actualizar: […]

Uso de punto flotante en el kernel de Linux

Estoy leyendo el “Desarrollo del kernel de Linux” de Robert Love, y me encontré con el siguiente pasaje: No (fácil) uso de punto flotante Cuando un proceso de espacio de usuario utiliza instrucciones de coma flotante, el kernel gestiona la transición de un modo entero a uno de coma flotante. Lo que tiene que hacer […]

¿Cuál es el comportamiento de imprimir NULL con printf% s specifier?

Me encontré con una interesante pregunta de entrevista: test 1: printf(“test %s\n”, NULL); printf(“test %s\n”, NULL); prints: test (null) test (null) test 2: printf(“%s\n”, NULL); printf(“%s\n”, NULL); prints Segmentation fault (core dumped) Aunque esto podría funcionar bien en algunos sistemas, al menos el mío está generando una falla de segmentación. ¿Cuál sería la mejor explicación […]

¿Cómo matar un proceso que se ejecuta en un puerto particular en Linux?

Intenté cerrar el tomcat usando ./shutdown.sh desde el directorio tomcat /bin . Pero descubrió que el servidor no se cerró correctamente. Y así no pude reiniciar Mi gato se está ejecutando en el puerto 8080 . Quiero matar el proceso de Tomcat ejecutándose en 8080 . Primero quiero tener la lista de procesos ejecutándose en […]

¿Cómo determinar si un Linux dado es de 32 bits o de 64 bits?

Cuando uname -a , da la siguiente salida. Linux mars 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:50:33 EDT 2008 i686 i686 i386 GNU/Linux ¿Cómo puedo saber por esto que el sistema operativo dado es de 32 o 64 bits? Esto es útil al escribir scripts de configure , por ejemplo: ¿para qué architecture estoy construyendo?

Usar openssl para obtener el certificado de un servidor

Estoy tratando de obtener el certificado de un servidor remoto, que luego puedo usar para agregar a mi almacén de claves y usar dentro de mi aplicación java. Un desarrollador senior (que está de vacaciones :() me informó que puedo ejecutar esto: openssl s_client -connect host.host:9999 Para obtener un certificado sin procesar arrojado, que luego […]