1
0
mirror of https://github.com/ioacademy-jikim/debugging synced 2025-06-06 23:46:15 +00:00

first commit

This commit is contained in:
jikim 2015-12-13 22:34:58 +09:00
commit 0b589c7986
9455 changed files with 4350134 additions and 0 deletions

View File

@ -0,0 +1,4 @@
#include <execinfo.h>
#include <stdio.h>
#include <stdlib.h>
void print_gnu_backtrace(void);

View File

@ -0,0 +1,21 @@
#include <execinfo.h>
#include <stdio.h>
#include <stdlib.h>
void print_gnu_backtrace(void)
{
void * frame_addrs[16];
char** frame_strings;
size_t backtrace_size;
int i;
backtrace_size = backtrace( frame_addrs, 16 );
frame_strings = backtrace_symbols( frame_addrs, backtrace_size );
for( i=0; i<backtrace_size; ++i )
{
printf("%d: [0x%p] %s\n", i, frame_addrs[i], frame_strings[i] );
}
free( frame_strings );
}

View File

@ -0,0 +1,17 @@
#include <stdio.h>
typedef struct layout
{
struct layout* ebp;
void* ret;
} layout;
void print_gnu_backtrace()
{
layout* ebp = __builtin_frame_address(0);
while( ebp )
{
printf("0x%08x\n", (unsigned int)ebp->ret );
ebp = ebp->ebp;
}
}

View File

@ -0,0 +1,23 @@
#define _GNU_SOURCE
#include <stdio.h>
#include <dlfcn.h>
void **getEBP(int dummy)
{
void **ebp = (void**)&dummy - 2 ;
return (ebp);
}
void **save_ebp;
void print_gnu_backtrace(void)
{
int dummy;
void **ebp = getEBP(dummy);
void **ret = *(ebp + 1);
ebp = *ebp;
while(ebp)
{
printf("%p\n", ret );
ret = *(ebp + 1);
ebp = *ebp;
}
}

View File

@ -0,0 +1,29 @@
#define _GNU_SOURCE
#include <stdio.h>
#include <dlfcn.h>
void **getEBP(int dummy)
{
void **ebp = (void**)&dummy - 2 ;
return ebp;
}
void print_gnu_backtrace(void)
{
int dummy;
int frame = 0;
Dl_info dlip;
void **ebp = getEBP(dummy);
void **ret = *(ebp+1);
ebp = *ebp;
printf("Stack backtrace_3:\n");
while(ebp)
{
if( dladdr(ret, &dlip) == 0 )
break;
printf("Frame %d : [ebp=%p] [ret=%p] %s\n", frame++, ebp, ret, dlip.dli_sname );
ret = *(ebp + 1);
ebp = *ebp;
}
}

View File

@ -0,0 +1,24 @@
#define UNW_LOCAL_ONLY
#define _GNU_SOURCE
#include <libunwind.h>
#include <dlfcn.h>
#include "backtrace.h"
void print_gnu_backtrace (void) {
unw_word_t ip, sp;
unw_cursor_t cursor; unw_context_t uc;
Dl_info dlip;
int frame=0;
unw_getcontext(&uc);
unw_init_local(&cursor, &uc);
while (unw_step(&cursor) > 0) {
unw_get_reg(&cursor, UNW_REG_IP, &ip);
unw_get_reg(&cursor, UNW_REG_SP, &sp);
if( dladdr((void*)ip, &dlip) == 0 )
break;
printf("Frame %d : [ebp=%p] [ret=%p] %s\n", frame++,
(void*)sp, (void*)ip, dlip.dli_sname );
}
}

View File

@ -0,0 +1,24 @@
#define UNW_LOCAL_ONLY
#include <libunwind.h>
#include "backtrace.h"
void print_gnu_backtrace()
{
unw_cursor_t cursor;
unw_context_t context;
unw_getcontext(&context);
unw_init_local(&cursor, &context);
while (unw_step(&cursor) > 0) {
unw_word_t offset, pc;
char fname[64];
unw_get_reg(&cursor, UNW_REG_IP, &pc);
fname[0] = '\0';
(void) unw_get_proc_name(&cursor, fname, sizeof(fname), &offset);
printf ("%p : (%s+0x%x) [%p]\n", (void*)pc, fname, offset, (void*)pc);
}
}

View File

@ -0,0 +1,27 @@
#include "backtrace.h"
int foo(void)
{
print_gnu_backtrace();
return 0;
}
int bar(void)
{
foo();
return 0;
}
int boo(void)
{
bar();
return 0;
}
int baz(void)
{
boo();
return 0;
}
int main()
{
baz();
return 0;
}

@ -0,0 +1 @@
Subproject commit 8afc33ce9f20538f048838e18680c120867ee0d2

BIN
01_day/corefile/a.out Executable file

Binary file not shown.

BIN
01_day/corefile/core Normal file

Binary file not shown.

View File

@ -0,0 +1,82 @@
#include <stdio.h>
#include <stdlib.h>
#include <elf.h>
#include <sys/procfs.h>
#include <asm/ldt.h>
static void * read_note(void *addr, void **pdata)
{
#define ALIGN(pos, size) ((((pos) + (size-1)) / size) * size)
Elf32_Nhdr *note_hdr = addr;
/* print note name and type */
printf("note: %-8s (0x%03x)\n", (char *)(note_hdr+1), note_hdr->n_type);
/* calculate data position */
*pdata = (void *) ((unsigned long) (note_hdr+1) + ALIGN(note_hdr->n_namesz, 4));
/* return pointer of next note header */
return (void *) ((unsigned long) *pdata + ALIGN(note_hdr->n_descsz, 4));
}
int main(void)
{
prstatus_t *status;
prpsinfo_t *psinfo;
struct elf_siginfo *siginfo;
Elf32_auxv_t *auxv;
struct user_desc *ldt;
void *files;
FILE *fp;
Elf32_Ehdr elf_hdr;
Elf32_Phdr pgrm_hdr;
char buf[4096];
void *note;
fp = fopen("core", "r");
/* read ELF header */
fread(&elf_hdr, sizeof(elf_hdr), 1, fp);
/* seek to first program header (for NOTE) */
fseek(fp, elf_hdr.e_phoff, SEEK_SET);
/* read program header */
fread(&pgrm_hdr, sizeof(pgrm_hdr), 1, fp);
/* seek to note */
fseek(fp, pgrm_hdr.p_offset, SEEK_SET);
fread(buf, pgrm_hdr.p_filesz, 1, fp);
note = buf;
note = read_note(note, (void **) &status);
note = read_note(note, (void **) &psinfo);
note = read_note(note, (void **) &siginfo);
note = read_note(note, (void **) &auxv);
note = read_note(note, (void **) &files);
note = read_note(note, (void **) &ldt);
#define EAX 6
#define EIP 12
printf("program name = %s\n", psinfo->pr_fname);
printf("signo = %d\n", status->pr_info.si_signo);
printf("EIP = 0x%08lx\nEAX = 0x%08lx\n", status->pr_reg[EIP], status->pr_reg[EAX]);
/* print auxiliary vector */
for ( ; auxv->a_type != AT_NULL; auxv++) {
if (auxv->a_type == AT_BASE)
printf("address of dynamic loader: %p\n", (void *) auxv->a_un.a_val);
if (auxv->a_type == AT_SYSINFO_EHDR)
printf("address of vdso: %p\n", (void *) auxv->a_un.a_val);
}
printf("gdt entry: %u, base: 0x%08x, limit: 0x%08lx\n",
ldt->entry_number, ldt->base_addr & ~0xfff,
ldt->limit_in_pages ? ldt->limit * PAGE_SIZE : ldt->limit);
return 0;
}

View File

@ -0,0 +1,9 @@
#include <sys/types.h>
#include <unistd.h>
int main(void)
{
getchar();
*(int *) 0 = 1;
return 0;
}

BIN
01_day/stack/a.out Executable file

Binary file not shown.

17
01_day/stack/stack.c Normal file
View File

@ -0,0 +1,17 @@
#include <stdio.h>
void bar(int a)
{
printf("bar(), &a=%p\n", &a);
}
void foo()
{
bar(1);
// printf("foo()\n");
}
int main()
{
foo();
//printf("main()\n");
return 0;
}

BIN
02_day/ptrace/a.out Executable file

Binary file not shown.

65
02_day/ptrace/euidfake.c Normal file
View File

@ -0,0 +1,65 @@
#include <stdio.h>
#include <linux/ptrace.h>
#include <sys/types.h>
#include <sys/user.h> // or linux/user.h (contains user_regs_struct)
#include <stdlib.h>
#include <unistd.h>
void dump_reg(int pid, struct user_regs_struct *regs)
{
if(ptrace(PTRACE_GETREGS, pid, 0, regs)) {
perror("PTRACE_GETREGS");
exit(1);
}
printf("-------- DUMP OF REGISTERS --------\n");
printf("stack ebp = %#x\n", regs->ebp);
printf("stack esp = %#x\n", regs->esp);
printf("orig_eax = %#x\n", regs->orig_eax);
printf("eax = %#x\n", regs->eax);
printf("ebx = %#x\n", regs->ebx);
printf("ecx = %#x\n", regs->ecx);
printf("edx = %#x\n", regs->edx);
printf("eip = %#x\n", regs->eip);
printf("------------------------------------\n");
}
int main(void)
{
int pid, status;
struct user_regs_struct regs;
if(!(pid = fork())) {
ptrace(PTRACE_TRACEME, 0, 0, 0); // tracebit set
execl( "./geteuid" , "./geteuid" , NULL );
return 0;
}
// child process stand by
while(1) {
wait(&status);
if(WIFEXITED(status)) {
fprintf(stderr, "child has already exited\n");
break;
}
if(WIFSIGNALED(status)) {
fprintf(stderr, "child process %d was abnormal exit.\n", pid);
break;
}
// dump general purpose registers
dump_reg(pid, &regs);
if(regs.orig_eax == 0xc9 && regs.eax == geteuid()) {
printf("You'll call geteuid() hereafter\n");
ptrace(PTRACE_POKEUSR, pid, EAX*4, 0);
printf("EAX has been modified by ptrace()\n");
dump_reg(pid, &regs);
ptrace(PTRACE_CONT, pid, 0, 0);
break;
}
// trace until syscall
ptrace(PTRACE_SYSCALL, pid, 0, 0);
}
// End of while loop -> child process has exited already.
}

BIN
02_day/ptrace/geteuid Executable file

Binary file not shown.

19
02_day/ptrace/geteuid.c Normal file
View File

@ -0,0 +1,19 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
int main()
{
char *passwd = "criminal is a gold broker";
int euid;
euid = geteuid();
if(euid == 0) { // root
printf("You Are Operator!\n");
printf("Password is %s\n", passwd);
exit(0);
}
printf("You are just a user %d\n", euid);
return 0;
}

BIN
02_day/ptrace/hello Executable file

Binary file not shown.

12
02_day/ptrace/hello.c Normal file
View File

@ -0,0 +1,12 @@
#include <stdio.h>
#include <unistd.h>
int main()
{
char str[] = "hello!";
while(1)
{
printf("%s\n", str);
sleep(1);
}
}

54
02_day/ptrace/procmem.c Normal file
View File

@ -0,0 +1,54 @@
#include <stdlib.h>
#include <stdio.h>
#include <sys/ptrace.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
void dump_region(int fd, long start, long end)
{
char buf[4096];
lseek64(fd, start, SEEK_SET);
while(start < end) {
int rd;
rd = read(fd, buf, 4096);
write(STDOUT_FILENO, buf, rd);
start += 4096;
}
}
int main(int argc, char *argv[])
{
FILE *maps;
int mem;
pid_t pid;
char path[BUFSIZ];
if(argc < 2) {
fprintf(stderr, "usage: %s pid\n", argv[0]);
return EXIT_FAILURE;
}
pid = strtol(argv[1], NULL, 10);
if(ptrace(PTRACE_ATTACH, pid, NULL, NULL) == -1) {
perror("ptrace");
return EXIT_FAILURE;
}
snprintf(path, sizeof(path), "/proc/%d/maps", pid);
maps = fopen(path, "r");
snprintf(path, sizeof(path), "/proc/%d/mem", pid);
mem = open(path, O_RDONLY);
if(maps && mem != -1) {
char buf[BUFSIZ + 1];
while(fgets(buf, BUFSIZ, maps)) {
long start, end;
sscanf(buf, "%llx-%llx", &start, &end);
dump_region(mem, start, end);
}
}
ptrace(PTRACE_DETACH, pid, NULL, NULL);
if(mem != -1)
close(mem);
if(maps)
fclose(maps);
return EXIT_SUCCESS;
}

21
02_day/ptrace/ptrace.c Normal file
View File

@ -0,0 +1,21 @@
#include <sys/ptrace.h>
#include <sys/user.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
struct user_regs_struct regs;
int ret, pid, i;
pid = atoi(argv[1]);
ret = ptrace(PTRACE_ATTACH, pid, 0, 0);
printf("return : %d\n", ret);
ptrace(PTRACE_DETACH, pid, 0, 0);
}

28
02_day/ptrace/ptrace_1.c Normal file
View File

@ -0,0 +1,28 @@
#include <sys/ptrace.h>
#include <sys/user.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
struct user_regs_struct regs;
int ret, pid;
pid = atoi(argv[1]);
ret = ptrace(PTRACE_ATTACH, pid, 0, 0);
printf("return : %d\n", ret);
ptrace(PTRACE_GETREGS, pid, 0, regs);
// 스택 주소 출력
printf("stack = %p\n", (void*)regs.esp);
ptrace(PTRACE_DETACH, pid, 0, 0);
}

27
02_day/ptrace/ptrace_2.c Normal file
View File

@ -0,0 +1,27 @@
#include <sys/ptrace.h>
#include <sys/user.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
struct user_regs_struct regs;
int ret, pid, i;
unsigned int data;
pid = atoi(argv[1]);
ret = ptrace(PTRACE_ATTACH, pid, 0, 0);
printf("return : %d\n", ret);
ptrace(PTRACE_GETREGS, pid, 0, regs);
printf("stack = %p\n", (void*)regs.esp);
for(i=0; i<10; i++)
{
data = ptrace(PTRACE_PEEKDATA, pid, regs.esp+i*4, 0);
printf("%08x\n", data);
}
ptrace(PTRACE_DETACH, pid, 0, 0);
}

36
02_day/ptrace/ptrace_3.c Normal file
View File

@ -0,0 +1,36 @@
#include <sys/ptrace.h>
#include <sys/user.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
struct user_regs_struct regs;
int ret, pid, i, j;
unsigned int data;
unsigned char data2[4];
pid = atoi(argv[1]);
ret = ptrace(PTRACE_ATTACH, pid, 0, 0);
printf("return : %d\n", ret);
ptrace(PTRACE_GETREGS, pid, 0, &regs);
printf("stack = %p\n", (void*)regs.esp);
for(i=0; i<300; i++)
{
data = ptrace(PTRACE_PEEKDATA, pid, regs.esp+i*4, 0);
memcpy(&data2, &data, 4);
for(j=0; j<4; j++){
if(isprint(data2[j]))
printf("%c ", data2[j]);
else
printf(". ");
}
}
ptrace(PTRACE_DETACH, pid, 0, 0);
}

38
02_day/ptrace/ptrace_4.c Normal file
View File

@ -0,0 +1,38 @@
#include <sys/ptrace.h>
#include <sys/user.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
struct user_regs_struct regs;
int ret, pid, i, j;
unsigned int data;
unsigned char data2[4];
pid = atoi(argv[1]);
ret = ptrace(PTRACE_ATTACH, pid, 0, 0);
printf("return : %d\n", ret);
ptrace(PTRACE_GETREGS, pid, 0, &regs);
printf("stack = %p\n", (void*)regs.esp);
for(i=0; i<300; i++)
{
data = ptrace(PTRACE_PEEKDATA, pid, regs.esp+i*4, 0);
memcpy(&data2, &data, 4);
printf("%08x : ", (unsigned int)regs.esp+i*4);
for(j=0; j<4; j++){
if(isprint(data2[j]))
printf("%c ", data2[j]);
else
printf(". ");
}
printf("\n");
}
ptrace(PTRACE_DETACH, pid, 0, 0);
}

40
02_day/ptrace/ptrace_5.c Normal file
View File

@ -0,0 +1,40 @@
#include <sys/ptrace.h>
#include <sys/user.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
struct user_regs_struct regs;
int ret, pid, i, j;
unsigned int data;
unsigned char data2[4];
pid = atoi(argv[1]);
ret = ptrace(PTRACE_ATTACH, pid, 0, 0);
printf("return : %d\n", ret);
ptrace(PTRACE_GETREGS, pid, 0, &regs);
printf("stack = %p\n", (void*)regs.esp);
for(i=0; i<300; i++)
{
data = ptrace(PTRACE_PEEKDATA, pid, regs.esp+i*4, 0);
memcpy(&data2, &data, 4);
printf("%08x : ", (unsigned int)regs.esp+i*4);
for(j=0; j<4; j++){
if(isprint(data2[j]))
printf("%c ", data2[j]);
else
printf(". ");
}
printf("\n");
}
ptrace(PTRACE_POKEDATA, pid, 0xbf8b7f65, 0x41414141);
ptrace(PTRACE_DETACH, pid, 0, 0);
}

14
02_day/valgrind/test_1.c Normal file
View File

@ -0,0 +1,14 @@
#include <string.h>
static void *rrr;
static void **p_rrr;
static void foo(void)
{
rrr = strdup("bbb");
}
int main()
{
foo();
return 0;
}

17
02_day/valgrind/test_2.c Normal file
View File

@ -0,0 +1,17 @@
#include <string.h>
#include <stdlib.h>
static void *rrr;
static void **p_rrr;
static void foo(void)
{
p_rrr = malloc(sizeof(void **));
*p_rrr = strdup("bbb");
}
int main()
{
foo();
return 0;
}

16
02_day/valgrind/test_3.c Normal file
View File

@ -0,0 +1,16 @@
#include <string.h>
#include <stdlib.h>
static void *rrr;
static void **p_rrr;
static void foo(void)
{
rrr = strdup("bbb");
rrr = NULL;
}
int main()
{
foo();
return 0;
}

17
02_day/valgrind/test_4.c Normal file
View File

@ -0,0 +1,17 @@
#include <string.h>
#include <stdlib.h>
static void *rrr;
static void **p_rrr;
static void foo(void)
{
p_rrr = malloc(sizeof(void **));
*p_rrr = strdup("bbb");
p_rrr = NULL;
}
int main()
{
foo();
return 0;
}

16
02_day/valgrind/test_5.c Normal file
View File

@ -0,0 +1,16 @@
#include <string.h>
#include <stdlib.h>
static void *rrr;
static void **p_rrr;
static void foo(void)
{
rrr = strdup("bbb");
rrr = ((char *)rrr)+1;
}
int main()
{
foo();
return 0;
}

17
02_day/valgrind/test_6.c Normal file
View File

@ -0,0 +1,17 @@
#include <string.h>
#include <stdlib.h>
static void *rrr;
static void **p_rrr;
static void foo(void)
{
p_rrr = malloc(sizeof(void **));
*p_rrr = strdup("bbb");
*p_rrr = ((char *)(*p_rrr))+1;
}
int main()
{
foo();
return 0;
}

17
02_day/valgrind/test_7.c Normal file
View File

@ -0,0 +1,17 @@
#include <string.h>
#include <stdlib.h>
static void *rrr;
static void **p_rrr;
static void foo(void)
{
p_rrr = malloc(sizeof(void **));
*p_rrr = strdup("bbb");
p_rrr = (void **)((char *)p_rrr + 1);
}
int main()
{
foo();
return 0;
}

19
02_day/valgrind/test_8.c Normal file
View File

@ -0,0 +1,19 @@
#include <string.h>
#include <stdlib.h>
static void *rrr;
static void **p_rrr;
static void foo(void)
{
p_rrr = malloc(sizeof(void **));
*p_rrr = strdup("bbb");
*p_rrr = ((char *)(*p_rrr))+1;
p_rrr = (void **)(((char *)(p_rrr))+1);
}
int main()
{
foo();
return 0;
}

18
02_day/valgrind/test_9.c Normal file
View File

@ -0,0 +1,18 @@
#include <string.h>
#include <stdlib.h>
static void *rrr;
static void **p_rrr;
static void foo(void)
{
p_rrr = malloc(sizeof(void **));
*p_rrr = strdup("bbb");
*p_rrr = ((char *)(*p_rrr)+1);
p_rrr = NULL;
}
int main()
{
foo();
return 0;
}

Binary file not shown.

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/32bit-core-valgrind-s1.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/32bit-core-valgrind-s2.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/32bit-core.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/32bit-linux-valgrind-s1.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/32bit-linux-valgrind-s2.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/32bit-linux.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/32bit-sse-valgrind-s1.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/32bit-sse-valgrind-s2.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/32bit-sse.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/64bit-avx-valgrind-s1.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/64bit-avx-valgrind-s2.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/64bit-avx.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/64bit-core-valgrind-s1.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/64bit-core-valgrind-s2.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/64bit-core.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/64bit-linux-valgrind-s1.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/64bit-linux-valgrind-s2.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/64bit-linux.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/64bit-sse-valgrind-s1.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/64bit-sse-valgrind-s2.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/64bit-sse.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/amd64-avx-coresse-valgrind.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/amd64-avx-coresse.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/amd64-avx-linux-valgrind.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/amd64-avx-linux.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/amd64-coresse-valgrind.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/amd64-linux-valgrind.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/arm-core-valgrind-s1.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/arm-core-valgrind-s2.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/arm-core.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/arm-vfpv3-valgrind-s1.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/arm-vfpv3-valgrind-s2.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/arm-vfpv3.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/arm-with-vfpv3-valgrind.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/arm-with-vfpv3.xml

View File

@ -0,0 +1 @@
../cachegrind/cachegrind-x86-linux

View File

@ -0,0 +1 @@
../callgrind/callgrind-x86-linux

View File

@ -0,0 +1 @@
../default.supp

View File

@ -0,0 +1 @@
../drd/drd-x86-linux

View File

@ -0,0 +1 @@
../exp-bbv/exp-bbv-x86-linux

View File

@ -0,0 +1 @@
../exp-dhat/exp-dhat-x86-linux

View File

@ -0,0 +1 @@
../exp-sgcheck/exp-sgcheck-x86-linux

View File

@ -0,0 +1 @@
../auxprogs/getoff-x86-linux

View File

@ -0,0 +1 @@
../helgrind/helgrind-x86-linux

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/i386-coresse-valgrind.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/i386-linux-valgrind.xml

View File

@ -0,0 +1 @@
../lackey/lackey-x86-linux

View File

@ -0,0 +1 @@
../massif/massif-x86-linux

View File

@ -0,0 +1 @@
../memcheck/memcheck-x86-linux

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/mips-cp0-valgrind-s1.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/mips-cp0-valgrind-s2.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/mips-cp0.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/mips-cpu-valgrind-s1.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/mips-cpu-valgrind-s2.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/mips-cpu.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/mips-fpu-valgrind-s1.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/mips-fpu-valgrind-s2.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/mips-fpu.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/mips-linux-valgrind.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/mips-linux.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/mips64-cp0-valgrind-s1.xml

View File

@ -0,0 +1 @@
../coregrind/m_gdbserver/mips64-cp0-valgrind-s2.xml

Some files were not shown because too many files have changed in this diff Show More