Debug tools

<div Bug Tracking System available through a web interface Nemiver – Standalone graphical debugger for GNOME D.U.M.A Detect Unintended Memory Access – A Red-Zone memory allocator Valgrind – a memory debugger and profiler electricfence – a malloc debugger gdb – GNU source level debugger ddd – GNU data display debugger strace – a system call …

software bugs .

knowledge drop Bugs due to conceptual error syntactically incorrect program, wrong or inappropriate design or concept employed. Math bugs Division by zero, arithmetic overflow or underflow, lack of arithmetic precision due to rounding etc. Logic bugs infinite loops and infinite recursion. Syntax bugs. Resource bugs Buffer overflow, access violations, usage of an uninitialized variable. Co-programming …

kernel space and user space

Kernel space. Linux (which is a kernel) manages the machine’s hardware in a simple and efficient manner, offering the user a simple and uniform programming interface. In the same way, the kernel, and in particular its device drivers, form a bridge or interface between the end-user/programmer and the hardware. Any subroutines or functions forming part …

irb interactive ruby and ruby files

commandline session $ 4.2.20 9 508—> irb irb(main):001:0> 10+10 => 20 irb(main):002:0> 34*5 => 170 irb(main):003:0> 9-8 => 1 irb(main):004:0> () => nil irb(main):005:0> $ 4.2.20 12 511—> ruby sum.rb 3 $ 4.2.20 13 512—> cat sum.rb a = 1 + 2 puts a $ 4.2.20 14 513—> $ 4.2.20 15 514—> irb irb(main):001:0> Dir.entries(‘/home/jeffrin/shelter/symmel/’) …

kernel sources and RE with cut and head

commandline session $ 4.2.20 26 526—> time grep -r ‘^Linus’ * | head -n20 | cut -c 1-31 arch/x86/math-emu/README:Linus debian/pkg/headers/README:Linus debian/pkg/headers/README:Linus debian/pkg/headers/README:Linus debian/pkg/headers/README:Linus debian/pkg/headers/README:Linus debian/pkg/headers/README:Linus debian/pkg/headers/README:Linus debian/pkg/headers/README:Linus debian/pkg/headers/README:Linus debian/pkg/headers/README:Linus debian/pkg/headers/README:Linus debian/pkg/headers/README:Linus debian/pkg/headers/README:Linus debian/pkg/headers/README:Linus debian/pkg/headers/README:Linus debian/pkg/headers/README:Linus debian/pkg/headers/README:Linus debian/pkg/headers/README:Linus debian/pkg/headers/README:Linus real 0m1.110s user 0m0.444s sys 0m0.608s $ 4.2.20 27 527—>

using regular expressions in kernel source

commandline session $ 4.2.20 67 568—> grep -r ‘^kernel’ * | head -n20 arch/alpha/kernel/entry.S:kernel_thread: arch/alpha/kernel/entry.S:kernel_execve: arch/avr32/kernel/head.S:kernel_entry: arch/avr32/kernel/head.S:kernel_start_addr: arch/sh/boot/compressed/head_32.S:kernel_start_addr: arch/mn10300/kernel/kernel_execve.S:kernel_execve: arch/mn10300/kernel/kthread.S:kernel_thread_helper: arch/um/.gitignore:kernel/config.c arch/um/.gitignore:kernel/config.tmp arch/um/.gitignore:kernel/vmlinux.lds arch/cris/arch-v32/kernel/process.c:kernel_thread_helper(void* dummy, int (*fn)(void *), void * arg) arch/cris/arch-v32/kernel/process.c:kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) arch/cris/arch-v32/kernel/entry.S:kernel_execve: arch/cris/include/arch-v32/arch/bitops.h:kernel_ffs(unsigned long w) arch/cris/arch-v10/kernel/entry.S:kernel_execve: arch/cris/arch-v10/README.mm:kernel segments like the i386, need to setup swapper_pg_dir directly …

send patches using git using yahoo mail server

ABOUT git Git (/ɡɪt/[7]) is a distributed version control system for tracking changes in source code during software development.[8] It is designed for coordinating work among programmers, but it can be used to track changes in any set of files. Its goals include speed,[9] data integrity,[10] and support for distributed, non-linear workflows. MAY BE CORRECT …

&~ operation in C

commandline session switch (_NSIG_WORDS) { default: for (i = _NSIG_WORDS, ready = 0; –i >= 0 ; ) ready |= signal->sig[i] &~ blocked->sig[i]; break; case 4: ready = signal->sig[3] &~ blocked->sig[3]; ready |= signal->sig[2] &~ blocked->sig[2]; ready |= signal->sig[1] &~ blocked->sig[1]; ready |= signal->sig[0] &~ blocked->sig[0]; break; case 2: ready = signal->sig[1] &~ blocked->sig[1]; ready …