diff --git a/docs/blog/index.xml b/docs/blog/index.xml
index 65a89a1..9361e79 100644
--- a/docs/blog/index.xml
+++ b/docs/blog/index.xml
@@ -2,87 +2,87 @@
Blogs on Vineel Kovvuri
- /blog/
+ //localhost:9999/blog/
Recent content in Blogs on Vineel KovvuriHugo -- gohugo.ioen-usFri, 01 Nov 2019 18:33:07 -0700
-
+ Compiler Internals
- /blog/compiler-internals/
+ //localhost:9999/blog/compiler-internals/
Fri, 01 Nov 2019 18:33:07 -0700
- /blog/compiler-internals/
+ //localhost:9999/blog/compiler-internals/Basics //a.c int myadd() { int sum = 10; for (int i = 0; i < 100; i++) sum += i; return sum; } int myadd2() { int sum = 10; for (int i = 0; i < 100; i++) sum += i*i; return sum; } int main() { return myadd(); } >cl /c a.c >link /dump /symbols a.obj 008 00000000 SECT3 notype () External | myadd 009 00000050 SECT3 notype () External | myadd2 00A 000000A0 SECT3 notype () External | main The link /dump command dumps the symbols that are part of the obj file.UART - From AVR to Linux to Logic Analyzer
- /blog/uart-from-avr-to-linux-to-logic-analyzer/
+ //localhost:9999/blog/uart-from-avr-to-linux-to-logic-analyzer/
Fri, 20 Sep 2019 18:33:07 -0700
- /blog/uart-from-avr-to-linux-to-logic-analyzer/
+ //localhost:9999/blog/uart-from-avr-to-linux-to-logic-analyzer/UART - From AVR to Linux to Logic Analyzer Introduction In this article, let’s see how a program running on Atmega328PU microcontroller can communicate to external world using UART. In order to run through this exercise we need below equipment.
Atmega328PU Microcontroller Breadboard AVR/USBASP programmer USB to TTL Adapater Logic Analyzer Digital Oscilloscope Atmega328PU pinout It is an 8-bit microcontroller(uC) with following pinout. All its digital pins are grouped in to 4 banks(PA/PB/PC/PD).What Does It Take To Write An Emulator In Java?
- /blog/what-does-it-take-to-write-an-emulator-in-java/
+ //localhost:9999/blog/what-does-it-take-to-write-an-emulator-in-java/
Wed, 10 Apr 2019 18:33:07 -0700
- /blog/what-does-it-take-to-write-an-emulator-in-java/
+ //localhost:9999/blog/what-does-it-take-to-write-an-emulator-in-java/Introduction I am proud, This weekend I did some productive work. I was able to code Chip 8 emulator in Java over a night. I have always been fascinated by them and finally I was able to get the damn thing to work! For those of you who are not familiar with software emulator, It is a software which can emulate the functionality of other hardware or software components. Notable examples are video game emulators(Dosbox ,NES Emulator), general purpose software emulators(QEmu)Setting User Mode Break Points From Kd Aka .process /i Vs .process /r /p
- /blog/usermode-breakpoints-from-kd/
+ //localhost:9999/blog/usermode-breakpoints-from-kd/
Sun, 10 Mar 2019 18:33:07 -0700
- /blog/usermode-breakpoints-from-kd/
+ //localhost:9999/blog/usermode-breakpoints-from-kd/Introduction When performing KD(Kernel Debugging) in Windows with Windbg if you have to set a break point in a user mode process we should always use .process /i address; g; .reload /user. Lot of good content is written on the internet on this command, but nothing seemed to explain why this command should be used instead of the familiar .process /r /p address. I would like to shed some light on this.
- Signed/unsigned Integer Arithmetic In C
- /blog/signed-unsigned-integer-arithmetic-in-c/
+ Signed/Unsigned Integer Arithmetic In C
+ //localhost:9999/blog/signed-unsigned-integer-arithmetic-in-c/
Sun, 10 Feb 2019 18:33:07 -0700
- /blog/signed-unsigned-integer-arithmetic-in-c/
+ //localhost:9999/blog/signed-unsigned-integer-arithmetic-in-c/Introduction This article is about understanding how integer conversions happen in C language. The C standard defines the integer conversion rules agnostic to any specific machine architecture. This also makes things more complicated for programmers to understand.
First of all, Why do we need integer conversions at all? The answer is simple, we need to have single type for any given expression. Let’s say we have an expression when expr1 and expr2 are of different types, we want the resulting expression from this to have one single type.Pdb Files: The Glue Between The Binary File And Source Code
- /blog/pdb-files-the-glue-between-the-binary-file-and-source-code/
+ //localhost:9999/blog/pdb-files-the-glue-between-the-binary-file-and-source-code/
Thu, 10 Jan 2019 18:33:07 -0700
- /blog/pdb-files-the-glue-between-the-binary-file-and-source-code/
+ //localhost:9999/blog/pdb-files-the-glue-between-the-binary-file-and-source-code/Introduction Have you ever wondered how a debugger magically gets you to the correct pdb and correct sources when debugging an application? This article talks exactly that in the context of Windbg.
As you might be aware of, PDB files(also called as symbol files) is the glue between your application binary and the source code. There are two key Environment variables which configures Windbg about where to look for symbols and sources.PCI Express Basics 101
- /blog/pci-express-basics-101/
+ //localhost:9999/blog/pci-express-basics-101/
Mon, 10 Dec 2018 18:33:07 -0700
- /blog/pci-express-basics-101/
+ //localhost:9999/blog/pci-express-basics-101/Introduction PCI Express: It is a standard which comes in multiple generations and multiple lane configurations. PCI-E is in its 5th generation, but mostly the current shipping generation is 3rd generation also called as Gen 3. Mainly each generation improves upon the previous generation regarding the speed per lane supported by the protocol.
Below is the table for each generation and lane speed For single-lane and 16-lane links, in each direction:Lib Files 101
- /blog/lib-files-101/
+ //localhost:9999/blog/lib-files-101/
Sat, 10 Nov 2018 18:33:07 -0700
- /blog/lib-files-101/
+ //localhost:9999/blog/lib-files-101/Introduction During the compilation one of the crucial step after assembling is creating the Object files. The collection of these object files is called a lib file. We can create these .lib files through following visual studio project types
Static Library Dynamic Linked Library The format of these .lib files is specified in ‘Archive (Library) File Format.’ section of PE Format. As per the spec, .lib is an archive of individual .How Do Breakpoints Work In Debuggers?
- /blog/how-do-breakpoints-work-in-debuggers/
+ //localhost:9999/blog/how-do-breakpoints-work-in-debuggers/
Wed, 10 Oct 2018 18:33:07 -0700
- /blog/how-do-breakpoints-work-in-debuggers/
+ //localhost:9999/blog/how-do-breakpoints-work-in-debuggers/Introduction It’s been a while, I have got a chance to blog about low-level stuff. In this article, I am going to explain how breakpoints work in debuggers. I am assuming the reader is already familiar with what a breakpoint is? and how to set it in your debugger of choice. The goal of this post is to explain the interplay between Debugger, Debuggee, Operating System and the CPU.
Breakpoints Theory To get there, we have to ask ourselves What does it mean by debugging a program/process?A Newbie's Introduction To Compilation Process And Reverse Engineering
- /blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/
+ //localhost:9999/blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/
Fri, 10 Aug 2018 18:33:07 -0700
- /blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/
+ //localhost:9999/blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/Introduction Compilers are surely the complex programs of all times. Even today, writing a compiler with minimum set of tools is considered to be challenging. This tutorial scratches the surface of different compiler phases involved in translating a given source code to executable and also shows how this information is useful in context of reverse engineering.
GNU compiler collection provides an excellent set of tools for dissecting the compilation process and to understand the working of bits and bytes in the final executable.Libspng - C Language Case Study
- /blog/c-case-studies/f/
+ //localhost:9999/blog/c-case-studies/f/
Tue, 10 Jul 2018 18:33:07 -0700
- /blog/c-case-studies/f/
+ //localhost:9999/blog/c-case-studies/f/Build System It uses meson build system to build the library
Data Structures It is not using any fancy data structures instead it relies on plain array of objects and uses the traditional realloc function to expand them.
Miscellaneous All variables are declared as when needed. This deviates from Linux source code. In Linux kernel, declarations are done only in the beginning of a new scope (either at the start of the function or start of a scope)
diff --git a/docs/blog/lib-files-101/index.html b/docs/blog/lib-files-101/index.html
index 2889a96..5145349 100644
--- a/docs/blog/lib-files-101/index.html
+++ b/docs/blog/lib-files-101/index.html
@@ -1,6 +1,6 @@
-
+
Lib Files 101 | Vineel Kovvuri
diff --git a/docs/blog/pci-express-basics-101/index.html b/docs/blog/pci-express-basics-101/index.html
index 270ed4e..c4a7956 100644
--- a/docs/blog/pci-express-basics-101/index.html
+++ b/docs/blog/pci-express-basics-101/index.html
@@ -1,6 +1,6 @@
-
+
PCI Express Basics 101 | Vineel Kovvuri
diff --git a/docs/blog/pdb-files-the-glue-between-the-binary-file-and-source-code/index.html b/docs/blog/pdb-files-the-glue-between-the-binary-file-and-source-code/index.html
index c104c84..310e91d 100644
--- a/docs/blog/pdb-files-the-glue-between-the-binary-file-and-source-code/index.html
+++ b/docs/blog/pdb-files-the-glue-between-the-binary-file-and-source-code/index.html
@@ -1,6 +1,6 @@
-
+
Pdb Files: The Glue Between The Binary File And Source Code | Vineel Kovvuri
diff --git a/docs/blog/signed-unsigned-integer-arithmetic-in-c/index.html b/docs/blog/signed-unsigned-integer-arithmetic-in-c/index.html
index 3b6af54..f9d3c24 100644
--- a/docs/blog/signed-unsigned-integer-arithmetic-in-c/index.html
+++ b/docs/blog/signed-unsigned-integer-arithmetic-in-c/index.html
@@ -1,9 +1,9 @@
-
+
- Signed/unsigned Integer Arithmetic In C | Vineel Kovvuri
+ Signed/Unsigned Integer Arithmetic In C | Vineel Kovvuri
@@ -27,7 +27,7 @@
-
Signed/unsigned Integer Arithmetic In C
+
Signed/Unsigned Integer Arithmetic In C
2019/02/10
@@ -53,8 +53,8 @@
Introduction
the size of these basic types are determined. Windows x64 follows
LLP64(meaning only ’long long’ and pointer size are 64 bit wide), So below
are the sizes of the standard types that we are sticking to in this article.
-
Type | Size
-——————–+———
+
Type | Size
+--------------------+---------
signed char | 1 bytes
unsigned char | 1 bytes
signed short | 2 bytes
@@ -64,7 +64,8 @@
Introduction
signed long | 4 bytes
unsigned long | 4 bytes
signed long long | 8 bytes
-unsigned long long | 8 bytes
+unsigned long long | 8 bytes
+
Also, The specification leaves other aspects of C language definition
undefined and this leave room for optimizations for compilers. For example,
the result of signed arithmetic leading to overflow/underflow is not defined
diff --git a/docs/blog/uart-from-avr-to-linux-to-logic-analyzer/index.html b/docs/blog/uart-from-avr-to-linux-to-logic-analyzer/index.html
index 08dbf13..7086779 100644
--- a/docs/blog/uart-from-avr-to-linux-to-logic-analyzer/index.html
+++ b/docs/blog/uart-from-avr-to-linux-to-logic-analyzer/index.html
@@ -1,6 +1,6 @@
-
+
UART - From AVR to Linux to Logic Analyzer | Vineel Kovvuri
diff --git a/docs/blog/usermode-breakpoints-from-kd/index.html b/docs/blog/usermode-breakpoints-from-kd/index.html
index 03d6cad..b6243ea 100644
--- a/docs/blog/usermode-breakpoints-from-kd/index.html
+++ b/docs/blog/usermode-breakpoints-from-kd/index.html
@@ -1,6 +1,6 @@
-
+
Setting User Mode Break Points From Kd Aka .process /i Vs .process /r /p | Vineel Kovvuri
diff --git a/docs/blog/what-does-it-take-to-write-an-emulator-in-java/index.html b/docs/blog/what-does-it-take-to-write-an-emulator-in-java/index.html
index a324a05..2626a96 100644
--- a/docs/blog/what-does-it-take-to-write-an-emulator-in-java/index.html
+++ b/docs/blog/what-does-it-take-to-write-an-emulator-in-java/index.html
@@ -1,6 +1,6 @@
-
+
What Does It Take To Write An Emulator In Java? | Vineel Kovvuri
diff --git a/docs/categories/index.html b/docs/categories/index.html
index 66bcb77..1a00eeb 100644
--- a/docs/categories/index.html
+++ b/docs/categories/index.html
@@ -1,6 +1,6 @@
-
+
Categories | Vineel Kovvuri
diff --git a/docs/categories/index.xml b/docs/categories/index.xml
index 6c7d104..0c1a72a 100644
--- a/docs/categories/index.xml
+++ b/docs/categories/index.xml
@@ -2,10 +2,10 @@
Categories on Vineel Kovvuri
- /categories/
+ //localhost:9999/categories/
Recent content in Categories on Vineel KovvuriHugo -- gohugo.ioen-us
-
+
diff --git a/docs/courses/c/index.html b/docs/courses/c/index.html
index 23b8eca..b2092da 100644
--- a/docs/courses/c/index.html
+++ b/docs/courses/c/index.html
@@ -1,6 +1,6 @@
-
+
C Language Course Structure | Vineel Kovvuri
diff --git a/docs/courses/index.html b/docs/courses/index.html
index 055b509..055606d 100644
--- a/docs/courses/index.html
+++ b/docs/courses/index.html
@@ -1,6 +1,6 @@
-
+
Courses | Vineel Kovvuri
diff --git a/docs/courses/index.xml b/docs/courses/index.xml
index e198cef..ba2eb34 100644
--- a/docs/courses/index.xml
+++ b/docs/courses/index.xml
@@ -2,37 +2,37 @@
Courses on Vineel Kovvuri
- /courses/
+ //localhost:9999/courses/
Recent content in Courses on Vineel KovvuriHugo -- gohugo.ioen-us
-
+ C Language Course Structure
- /courses/c/
+ //localhost:9999/courses/c/
Mon, 01 Jan 0001 00:00:00 +0000
- /courses/c/
+ //localhost:9999/courses/c/C Some Fundamentals Compiling And Running Your First Program Variables, Data Types, And Arithmetic Expressions Program Looping Making Decisions Working With Arrays Working With Functions Working With Structures Character Strings Pointers Operations On Bits The Preprocessor Extending Data Types With The Enumerated Data Type, Type Definitions, And Data Type Conversions Working With Larger Programs Input And Output Operations In C Miscellaneous And Advanced Features Debugging Programs Object-Oriented Programming The Standard C Library Resources C Programming Notes for Professionals Java Course Structure
- /courses/java/
+ //localhost:9999/courses/java/
Mon, 01 Jan 0001 00:00:00 +0000
- /courses/java/
+ //localhost:9999/courses/java/Java The Java Language The History and Evolution of Java An Overview of Java Data Types, Variables, and Arrays Operators Control Statements Introducing Classes A Closer Look at Methods and Classes Inheritance Packages and Interfaces Exception Handling Multithreaded Programming Enumerations, Autoboxing, and Annotations I/O, Try-with-Resources, and Other Topics Generics Lambda Expressions Modules Switch Expressions, Records, and Other Recently Added Features The Java Library String Handling Exploring java.lang java.util Part 1: The Collections Framework java.Linux Course Structure
- /courses/linux/
+ //localhost:9999/courses/linux/
Mon, 01 Jan 0001 00:00:00 +0000
- /courses/linux/
+ //localhost:9999/courses/linux/Linux Learning The Shell What Is The Shell Navigation Exploring The System Manipulating Files And Directories Working With Commands Redirection Seeing The World As The Shell Sees It Advanced Keyboard Tricks Permissions Processes Configuration And The Environment The Environment A Gentle Introduction To Vi Customizing The Prompt Common Tasks And Essential Tools Package Management Storage Media Networking Searching For Files Archiving And Backup Regular Expressions Text Processing Formatting Output Printing Compiling Programs Writing Shell Scripts Writing Your First Script Starting A Project Top Down Design Flow Control Branching With If Reading Keyboard Input Flow Control Looping With While Until Troubleshooting Flow Control Branching With Case Positional Parameters Flow Control Looping With For Strings And Numbers Arrays Resources Linux Commands Notes for Professionals Python Course Structure
- /courses/python/
+ //localhost:9999/courses/python/
Mon, 01 Jan 0001 00:00:00 +0000
- /courses/python/
+ //localhost:9999/courses/python/Python Getting Started A Python Q&A Session How Python Runs Programs How You Run Programs Types And Operations Introducing Python Object Types Numeric Types The Dynamic Typing Interlude String Fundamentals Lists And Dictionaries Tuples, Files, And Everything Else Statements And Syntax Introducing Python Statements Assignments, Expressions, And Prints If Tests And Syntax Rules While And For Loops Iterations And Comprehensions The Documentation Interlude Functions And Generators Function Basics Scopes Arguments Advanced Function Topics Comprehensions And Generations The Benchmarking Interlude Modules And Packages Modules: The Big Picture Module Coding Basics Module Packages Advanced Module Topics Classes And OOP OOP: The Big Picture Class Coding Basics A More Realistic Example Class Coding Details Operator Overloading Designing With Classes Advanced Class Topics Exceptions And Tools Exception Basics Exception Coding Details Exception Objects Designing With Exceptions Advanced Topics Unicode And Byte Strings Managed Attributes Resources Python Notes for Professionals
diff --git a/docs/courses/java/index.html b/docs/courses/java/index.html
index 68ec3c2..e92708b 100644
--- a/docs/courses/java/index.html
+++ b/docs/courses/java/index.html
@@ -1,6 +1,6 @@
-
+
Java Course Structure | Vineel Kovvuri
diff --git a/docs/courses/linux/index.html b/docs/courses/linux/index.html
index d41f747..b525bea 100644
--- a/docs/courses/linux/index.html
+++ b/docs/courses/linux/index.html
@@ -1,6 +1,6 @@
-
+
Linux Course Structure | Vineel Kovvuri
diff --git a/docs/courses/python/index.html b/docs/courses/python/index.html
index 03156f4..58f562b 100644
--- a/docs/courses/python/index.html
+++ b/docs/courses/python/index.html
@@ -1,6 +1,6 @@
-
+
Python Course Structure | Vineel Kovvuri
diff --git a/docs/index.html b/docs/index.html
index c3747c1..89f1819 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -3,7 +3,7 @@
-
+
Home | Vineel Kovvuri
@@ -79,7 +79,7 @@
diff --git a/docs/index.xml b/docs/index.xml
index 8e63096..4798852 100644
--- a/docs/index.xml
+++ b/docs/index.xml
@@ -2,143 +2,143 @@
Home on Vineel Kovvuri
- /
+ //localhost:9999/
Recent content in Home on Vineel KovvuriHugo -- gohugo.ioen-usFri, 01 Nov 2019 18:33:07 -0700
-
+ Compiler Internals
- /blog/compiler-internals/
+ //localhost:9999/blog/compiler-internals/
Fri, 01 Nov 2019 18:33:07 -0700
- /blog/compiler-internals/
+ //localhost:9999/blog/compiler-internals/Basics //a.c int myadd() { int sum = 10; for (int i = 0; i < 100; i++) sum += i; return sum; } int myadd2() { int sum = 10; for (int i = 0; i < 100; i++) sum += i*i; return sum; } int main() { return myadd(); } >cl /c a.c >link /dump /symbols a.obj 008 00000000 SECT3 notype () External | myadd 009 00000050 SECT3 notype () External | myadd2 00A 000000A0 SECT3 notype () External | main The link /dump command dumps the symbols that are part of the obj file.UART - From AVR to Linux to Logic Analyzer
- /blog/uart-from-avr-to-linux-to-logic-analyzer/
+ //localhost:9999/blog/uart-from-avr-to-linux-to-logic-analyzer/
Fri, 20 Sep 2019 18:33:07 -0700
- /blog/uart-from-avr-to-linux-to-logic-analyzer/
+ //localhost:9999/blog/uart-from-avr-to-linux-to-logic-analyzer/UART - From AVR to Linux to Logic Analyzer Introduction In this article, let’s see how a program running on Atmega328PU microcontroller can communicate to external world using UART. In order to run through this exercise we need below equipment.
Atmega328PU Microcontroller Breadboard AVR/USBASP programmer USB to TTL Adapater Logic Analyzer Digital Oscilloscope Atmega328PU pinout It is an 8-bit microcontroller(uC) with following pinout. All its digital pins are grouped in to 4 banks(PA/PB/PC/PD).What Does It Take To Write An Emulator In Java?
- /blog/what-does-it-take-to-write-an-emulator-in-java/
+ //localhost:9999/blog/what-does-it-take-to-write-an-emulator-in-java/
Wed, 10 Apr 2019 18:33:07 -0700
- /blog/what-does-it-take-to-write-an-emulator-in-java/
+ //localhost:9999/blog/what-does-it-take-to-write-an-emulator-in-java/Introduction I am proud, This weekend I did some productive work. I was able to code Chip 8 emulator in Java over a night. I have always been fascinated by them and finally I was able to get the damn thing to work! For those of you who are not familiar with software emulator, It is a software which can emulate the functionality of other hardware or software components. Notable examples are video game emulators(Dosbox ,NES Emulator), general purpose software emulators(QEmu)Setting User Mode Break Points From Kd Aka .process /i Vs .process /r /p
- /blog/usermode-breakpoints-from-kd/
+ //localhost:9999/blog/usermode-breakpoints-from-kd/
Sun, 10 Mar 2019 18:33:07 -0700
- /blog/usermode-breakpoints-from-kd/
+ //localhost:9999/blog/usermode-breakpoints-from-kd/Introduction When performing KD(Kernel Debugging) in Windows with Windbg if you have to set a break point in a user mode process we should always use .process /i address; g; .reload /user. Lot of good content is written on the internet on this command, but nothing seemed to explain why this command should be used instead of the familiar .process /r /p address. I would like to shed some light on this.
- Signed/unsigned Integer Arithmetic In C
- /blog/signed-unsigned-integer-arithmetic-in-c/
+ Signed/Unsigned Integer Arithmetic In C
+ //localhost:9999/blog/signed-unsigned-integer-arithmetic-in-c/
Sun, 10 Feb 2019 18:33:07 -0700
- /blog/signed-unsigned-integer-arithmetic-in-c/
+ //localhost:9999/blog/signed-unsigned-integer-arithmetic-in-c/Introduction This article is about understanding how integer conversions happen in C language. The C standard defines the integer conversion rules agnostic to any specific machine architecture. This also makes things more complicated for programmers to understand.
First of all, Why do we need integer conversions at all? The answer is simple, we need to have single type for any given expression. Let’s say we have an expression when expr1 and expr2 are of different types, we want the resulting expression from this to have one single type.Pdb Files: The Glue Between The Binary File And Source Code
- /blog/pdb-files-the-glue-between-the-binary-file-and-source-code/
+ //localhost:9999/blog/pdb-files-the-glue-between-the-binary-file-and-source-code/
Thu, 10 Jan 2019 18:33:07 -0700
- /blog/pdb-files-the-glue-between-the-binary-file-and-source-code/
+ //localhost:9999/blog/pdb-files-the-glue-between-the-binary-file-and-source-code/Introduction Have you ever wondered how a debugger magically gets you to the correct pdb and correct sources when debugging an application? This article talks exactly that in the context of Windbg.
As you might be aware of, PDB files(also called as symbol files) is the glue between your application binary and the source code. There are two key Environment variables which configures Windbg about where to look for symbols and sources.PCI Express Basics 101
- /blog/pci-express-basics-101/
+ //localhost:9999/blog/pci-express-basics-101/
Mon, 10 Dec 2018 18:33:07 -0700
- /blog/pci-express-basics-101/
+ //localhost:9999/blog/pci-express-basics-101/Introduction PCI Express: It is a standard which comes in multiple generations and multiple lane configurations. PCI-E is in its 5th generation, but mostly the current shipping generation is 3rd generation also called as Gen 3. Mainly each generation improves upon the previous generation regarding the speed per lane supported by the protocol.
Below is the table for each generation and lane speed For single-lane and 16-lane links, in each direction:Lib Files 101
- /blog/lib-files-101/
+ //localhost:9999/blog/lib-files-101/
Sat, 10 Nov 2018 18:33:07 -0700
- /blog/lib-files-101/
+ //localhost:9999/blog/lib-files-101/Introduction During the compilation one of the crucial step after assembling is creating the Object files. The collection of these object files is called a lib file. We can create these .lib files through following visual studio project types
Static Library Dynamic Linked Library The format of these .lib files is specified in ‘Archive (Library) File Format.’ section of PE Format. As per the spec, .lib is an archive of individual .How Do Breakpoints Work In Debuggers?
- /blog/how-do-breakpoints-work-in-debuggers/
+ //localhost:9999/blog/how-do-breakpoints-work-in-debuggers/
Wed, 10 Oct 2018 18:33:07 -0700
- /blog/how-do-breakpoints-work-in-debuggers/
+ //localhost:9999/blog/how-do-breakpoints-work-in-debuggers/Introduction It’s been a while, I have got a chance to blog about low-level stuff. In this article, I am going to explain how breakpoints work in debuggers. I am assuming the reader is already familiar with what a breakpoint is? and how to set it in your debugger of choice. The goal of this post is to explain the interplay between Debugger, Debuggee, Operating System and the CPU.
Breakpoints Theory To get there, we have to ask ourselves What does it mean by debugging a program/process?A Newbie's Introduction To Compilation Process And Reverse Engineering
- /blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/
+ //localhost:9999/blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/
Fri, 10 Aug 2018 18:33:07 -0700
- /blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/
+ //localhost:9999/blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/Introduction Compilers are surely the complex programs of all times. Even today, writing a compiler with minimum set of tools is considered to be challenging. This tutorial scratches the surface of different compiler phases involved in translating a given source code to executable and also shows how this information is useful in context of reverse engineering.
GNU compiler collection provides an excellent set of tools for dissecting the compilation process and to understand the working of bits and bytes in the final executable.Libspng - C Language Case Study
- /blog/c-case-studies/f/
+ //localhost:9999/blog/c-case-studies/f/
Tue, 10 Jul 2018 18:33:07 -0700
- /blog/c-case-studies/f/
+ //localhost:9999/blog/c-case-studies/f/Build System It uses meson build system to build the library
Data Structures It is not using any fancy data structures instead it relies on plain array of objects and uses the traditional realloc function to expand them.
Miscellaneous All variables are declared as when needed. This deviates from Linux source code. In Linux kernel, declarations are done only in the beginning of a new scope (either at the start of the function or start of a scope)C Language Course Structure
- /courses/c/
+ //localhost:9999/courses/c/
Mon, 01 Jan 0001 00:00:00 +0000
- /courses/c/
+ //localhost:9999/courses/c/C Some Fundamentals Compiling And Running Your First Program Variables, Data Types, And Arithmetic Expressions Program Looping Making Decisions Working With Arrays Working With Functions Working With Structures Character Strings Pointers Operations On Bits The Preprocessor Extending Data Types With The Enumerated Data Type, Type Definitions, And Data Type Conversions Working With Larger Programs Input And Output Operations In C Miscellaneous And Advanced Features Debugging Programs Object-Oriented Programming The Standard C Library Resources C Programming Notes for Professionals Git Presentation - Part 1
- /presentations/git-part-1/
+ //localhost:9999/presentations/git-part-1/
Mon, 01 Jan 0001 00:00:00 +0000
- /presentations/git-part-1/
+ //localhost:9999/presentations/git-part-1/
Previous
Next
/ [pdf]
View the PDF file here.
Git Presentation - Part 2
- /presentations/git-part-2/
+ //localhost:9999/presentations/git-part-2/
Mon, 01 Jan 0001 00:00:00 +0000
- /presentations/git-part-2/
+ //localhost:9999/presentations/git-part-2/
Previous
Next
/ [pdf]
View the PDF file here.
Git Presentation - Part 3
- /presentations/git-part-3/
+ //localhost:9999/presentations/git-part-3/
Mon, 01 Jan 0001 00:00:00 +0000
- /presentations/git-part-3/
+ //localhost:9999/presentations/git-part-3/
Previous
Next
/ [pdf]
View the PDF file here.
Java Course Structure
- /courses/java/
+ //localhost:9999/courses/java/
Mon, 01 Jan 0001 00:00:00 +0000
- /courses/java/
+ //localhost:9999/courses/java/Java The Java Language The History and Evolution of Java An Overview of Java Data Types, Variables, and Arrays Operators Control Statements Introducing Classes A Closer Look at Methods and Classes Inheritance Packages and Interfaces Exception Handling Multithreaded Programming Enumerations, Autoboxing, and Annotations I/O, Try-with-Resources, and Other Topics Generics Lambda Expressions Modules Switch Expressions, Records, and Other Recently Added Features The Java Library String Handling Exploring java.lang java.util Part 1: The Collections Framework java.Linux Course Structure
- /courses/linux/
+ //localhost:9999/courses/linux/
Mon, 01 Jan 0001 00:00:00 +0000
- /courses/linux/
+ //localhost:9999/courses/linux/Linux Learning The Shell What Is The Shell Navigation Exploring The System Manipulating Files And Directories Working With Commands Redirection Seeing The World As The Shell Sees It Advanced Keyboard Tricks Permissions Processes Configuration And The Environment The Environment A Gentle Introduction To Vi Customizing The Prompt Common Tasks And Essential Tools Package Management Storage Media Networking Searching For Files Archiving And Backup Regular Expressions Text Processing Formatting Output Printing Compiling Programs Writing Shell Scripts Writing Your First Script Starting A Project Top Down Design Flow Control Branching With If Reading Keyboard Input Flow Control Looping With While Until Troubleshooting Flow Control Branching With Case Positional Parameters Flow Control Looping With For Strings And Numbers Arrays Resources Linux Commands Notes for Professionals Python Course Structure
- /courses/python/
+ //localhost:9999/courses/python/
Mon, 01 Jan 0001 00:00:00 +0000
- /courses/python/
+ //localhost:9999/courses/python/Python Getting Started A Python Q&A Session How Python Runs Programs How You Run Programs Types And Operations Introducing Python Object Types Numeric Types The Dynamic Typing Interlude String Fundamentals Lists And Dictionaries Tuples, Files, And Everything Else Statements And Syntax Introducing Python Statements Assignments, Expressions, And Prints If Tests And Syntax Rules While And For Loops Iterations And Comprehensions The Documentation Interlude Functions And Generators Function Basics Scopes Arguments Advanced Function Topics Comprehensions And Generations The Benchmarking Interlude Modules And Packages Modules: The Big Picture Module Coding Basics Module Packages Advanced Module Topics Classes And OOP OOP: The Big Picture Class Coding Basics A More Realistic Example Class Coding Details Operator Overloading Designing With Classes Advanced Class Topics Exceptions And Tools Exception Basics Exception Coding Details Exception Objects Designing With Exceptions Advanced Topics Unicode And Byte Strings Managed Attributes Resources Python Notes for Professionals Visual Studio Code
- /presentations/vscode/
+ //localhost:9999/presentations/vscode/
Mon, 01 Jan 0001 00:00:00 +0000
- /presentations/vscode/
+ //localhost:9999/presentations/vscode/
Previous
Next
/ [pdf]
View the PDF file here.
diff --git a/docs/presentations/git-part-1/index.html b/docs/presentations/git-part-1/index.html
index 859134b..18e5303 100644
--- a/docs/presentations/git-part-1/index.html
+++ b/docs/presentations/git-part-1/index.html
@@ -1,6 +1,6 @@
-
+
Git Presentation - Part 1 | Vineel Kovvuri
@@ -157,7 +157,7 @@
if (pdfjsLib.GlobalWorkerOptions.workerSrc == '')
- pdfjsLib.GlobalWorkerOptions.workerSrc = "\/" + 'js/pdf-js/build/pdf.worker.js';
+ pdfjsLib.GlobalWorkerOptions.workerSrc = "\/\/localhost:9999\/" + 'js/pdf-js/build/pdf.worker.js';
var pdfDoc = null,
diff --git a/docs/presentations/index.html b/docs/presentations/index.html
index f2f4f6f..5776d79 100644
--- a/docs/presentations/index.html
+++ b/docs/presentations/index.html
@@ -1,6 +1,6 @@
-
+
Presentations | Vineel Kovvuri
diff --git a/docs/presentations/index.xml b/docs/presentations/index.xml
index f9827cf..96c874f 100644
--- a/docs/presentations/index.xml
+++ b/docs/presentations/index.xml
@@ -2,37 +2,37 @@
Presentations on Vineel Kovvuri
- /presentations/
+ //localhost:9999/presentations/
Recent content in Presentations on Vineel KovvuriHugo -- gohugo.ioen-us
-
+ Git Presentation - Part 1
- /presentations/git-part-1/
+ //localhost:9999/presentations/git-part-1/
Mon, 01 Jan 0001 00:00:00 +0000
- /presentations/git-part-1/
+ //localhost:9999/presentations/git-part-1/
Previous
Next
/ [pdf]
View the PDF file here.
Git Presentation - Part 2
- /presentations/git-part-2/
+ //localhost:9999/presentations/git-part-2/
Mon, 01 Jan 0001 00:00:00 +0000
- /presentations/git-part-2/
+ //localhost:9999/presentations/git-part-2/
Previous
Next
/ [pdf]
View the PDF file here.
Git Presentation - Part 3
- /presentations/git-part-3/
+ //localhost:9999/presentations/git-part-3/
Mon, 01 Jan 0001 00:00:00 +0000
- /presentations/git-part-3/
+ //localhost:9999/presentations/git-part-3/
Previous
Next
/ [pdf]
View the PDF file here.
Visual Studio Code
- /presentations/vscode/
+ //localhost:9999/presentations/vscode/
Mon, 01 Jan 0001 00:00:00 +0000
- /presentations/vscode/
+ //localhost:9999/presentations/vscode/
Previous
Next
/ [pdf]
View the PDF file here.
diff --git a/docs/presentations/vscode/index.html b/docs/presentations/vscode/index.html
index bc7a67b..9caaa29 100644
--- a/docs/presentations/vscode/index.html
+++ b/docs/presentations/vscode/index.html
@@ -1,6 +1,6 @@
-
+
Visual Studio Code | Vineel Kovvuri
@@ -157,7 +157,7 @@
Visual Studio Code
if (pdfjsLib.GlobalWorkerOptions.workerSrc == '')
- pdfjsLib.GlobalWorkerOptions.workerSrc = "\/" + 'js/pdf-js/build/pdf.worker.js';
+ pdfjsLib.GlobalWorkerOptions.workerSrc = "\/\/localhost:9999\/" + 'js/pdf-js/build/pdf.worker.js';
var pdfDoc = null,
diff --git a/docs/sitemap.xml b/docs/sitemap.xml
index 4cb14b1..0d456c4 100644
--- a/docs/sitemap.xml
+++ b/docs/sitemap.xml
@@ -2,82 +2,82 @@
- /blog/
+ //localhost:9999/blog/2019-11-01T18:33:07-07:00
- /blog/compiler-internals/
+ //localhost:9999/blog/compiler-internals/2019-11-01T18:33:07-07:00
- /tags/compilers/
+ //localhost:9999/tags/compilers/2019-11-01T18:33:07-07:00
- /
+ //localhost:9999/2019-11-01T18:33:07-07:00
- /tags/
+ //localhost:9999/tags/2019-11-01T18:33:07-07:00
- /blog/uart-from-avr-to-linux-to-logic-analyzer/
+ //localhost:9999/blog/uart-from-avr-to-linux-to-logic-analyzer/2019-09-20T18:33:07-07:00
- /blog/what-does-it-take-to-write-an-emulator-in-java/
+ //localhost:9999/blog/what-does-it-take-to-write-an-emulator-in-java/2019-04-10T18:33:07-07:00
- /blog/usermode-breakpoints-from-kd/
+ //localhost:9999/blog/usermode-breakpoints-from-kd/2019-03-10T18:33:07-07:00
- /blog/signed-unsigned-integer-arithmetic-in-c/
+ //localhost:9999/blog/signed-unsigned-integer-arithmetic-in-c/2019-02-10T18:33:07-07:00
- /blog/pdb-files-the-glue-between-the-binary-file-and-source-code/
+ //localhost:9999/blog/pdb-files-the-glue-between-the-binary-file-and-source-code/2019-01-10T18:33:07-07:00
- /blog/pci-express-basics-101/
+ //localhost:9999/blog/pci-express-basics-101/2018-12-10T18:33:07-07:00
- /blog/lib-files-101/
+ //localhost:9999/blog/lib-files-101/2018-11-10T18:33:07-07:00
- /blog/how-do-breakpoints-work-in-debuggers/
+ //localhost:9999/blog/how-do-breakpoints-work-in-debuggers/2018-10-10T18:33:07-07:00
- /blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/
+ //localhost:9999/blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/2018-08-10T18:33:07-07:00
- /tags/asm/
+ //localhost:9999/tags/asm/2018-08-10T18:33:07-07:00
- /tags/c/
+ //localhost:9999/tags/c/2018-08-10T18:33:07-07:00
- /tags/reversing/
+ //localhost:9999/tags/reversing/2018-08-10T18:33:07-07:00
- /blog/c-case-studies/f/
+ //localhost:9999/blog/c-case-studies/f/2018-07-10T18:33:07-07:00
- /courses/c/
+ //localhost:9999/courses/c/
- /categories/
+ //localhost:9999/categories/
- /courses/
+ //localhost:9999/courses/
- /presentations/git-part-1/
+ //localhost:9999/presentations/git-part-1/
- /presentations/git-part-2/
+ //localhost:9999/presentations/git-part-2/
- /presentations/git-part-3/
+ //localhost:9999/presentations/git-part-3/
- /courses/java/
+ //localhost:9999/courses/java/
- /courses/linux/
+ //localhost:9999/courses/linux/
- /presentations/
+ //localhost:9999/presentations/
- /courses/python/
+ //localhost:9999/courses/python/
- /presentations/vscode/
+ //localhost:9999/presentations/vscode/
- /vlog/
+ //localhost:9999/vlog/
diff --git a/docs/tags/asm/index.html b/docs/tags/asm/index.html
index 8c2e660..67e5087 100644
--- a/docs/tags/asm/index.html
+++ b/docs/tags/asm/index.html
@@ -1,6 +1,6 @@
-
+
Asm | Vineel Kovvuri
diff --git a/docs/tags/asm/index.xml b/docs/tags/asm/index.xml
index fad6744..4146658 100644
--- a/docs/tags/asm/index.xml
+++ b/docs/tags/asm/index.xml
@@ -2,17 +2,17 @@
Asm on Vineel Kovvuri
- /tags/asm/
+ //localhost:9999/tags/asm/
Recent content in Asm on Vineel KovvuriHugo -- gohugo.ioen-usFri, 10 Aug 2018 18:33:07 -0700
-
+ A Newbie's Introduction To Compilation Process And Reverse Engineering
- /blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/
+ //localhost:9999/blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/
Fri, 10 Aug 2018 18:33:07 -0700
- /blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/
+ //localhost:9999/blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/Introduction Compilers are surely the complex programs of all times. Even today, writing a compiler with minimum set of tools is considered to be challenging. This tutorial scratches the surface of different compiler phases involved in translating a given source code to executable and also shows how this information is useful in context of reverse engineering.
GNU compiler collection provides an excellent set of tools for dissecting the compilation process and to understand the working of bits and bytes in the final executable.
diff --git a/docs/tags/c/index.html b/docs/tags/c/index.html
index f62afb2..89dd2c6 100644
--- a/docs/tags/c/index.html
+++ b/docs/tags/c/index.html
@@ -1,6 +1,6 @@
-
+
C | Vineel Kovvuri
diff --git a/docs/tags/c/index.xml b/docs/tags/c/index.xml
index 4b84e86..b218ff5 100644
--- a/docs/tags/c/index.xml
+++ b/docs/tags/c/index.xml
@@ -2,24 +2,24 @@
C on Vineel Kovvuri
- /tags/c/
+ //localhost:9999/tags/c/
Recent content in C on Vineel KovvuriHugo -- gohugo.ioen-usFri, 10 Aug 2018 18:33:07 -0700
-
+ A Newbie's Introduction To Compilation Process And Reverse Engineering
- /blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/
+ //localhost:9999/blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/
Fri, 10 Aug 2018 18:33:07 -0700
- /blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/
+ //localhost:9999/blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/Introduction Compilers are surely the complex programs of all times. Even today, writing a compiler with minimum set of tools is considered to be challenging. This tutorial scratches the surface of different compiler phases involved in translating a given source code to executable and also shows how this information is useful in context of reverse engineering.
GNU compiler collection provides an excellent set of tools for dissecting the compilation process and to understand the working of bits and bytes in the final executable.Libspng - C Language Case Study
- /blog/c-case-studies/f/
+ //localhost:9999/blog/c-case-studies/f/
Tue, 10 Jul 2018 18:33:07 -0700
- /blog/c-case-studies/f/
+ //localhost:9999/blog/c-case-studies/f/Build System It uses meson build system to build the library
Data Structures It is not using any fancy data structures instead it relies on plain array of objects and uses the traditional realloc function to expand them.
Miscellaneous All variables are declared as when needed. This deviates from Linux source code. In Linux kernel, declarations are done only in the beginning of a new scope (either at the start of the function or start of a scope)
diff --git a/docs/tags/compilers/index.html b/docs/tags/compilers/index.html
index 474e511..5948772 100644
--- a/docs/tags/compilers/index.html
+++ b/docs/tags/compilers/index.html
@@ -1,6 +1,6 @@
-
+
Compilers | Vineel Kovvuri
diff --git a/docs/tags/compilers/index.xml b/docs/tags/compilers/index.xml
index dcb1d13..df3cff5 100644
--- a/docs/tags/compilers/index.xml
+++ b/docs/tags/compilers/index.xml
@@ -2,17 +2,17 @@
Compilers on Vineel Kovvuri
- /tags/compilers/
+ //localhost:9999/tags/compilers/
Recent content in Compilers on Vineel KovvuriHugo -- gohugo.ioen-usFri, 01 Nov 2019 18:33:07 -0700
-
+ Compiler Internals
- /blog/compiler-internals/
+ //localhost:9999/blog/compiler-internals/
Fri, 01 Nov 2019 18:33:07 -0700
- /blog/compiler-internals/
+ //localhost:9999/blog/compiler-internals/Basics //a.c int myadd() { int sum = 10; for (int i = 0; i < 100; i++) sum += i; return sum; } int myadd2() { int sum = 10; for (int i = 0; i < 100; i++) sum += i*i; return sum; } int main() { return myadd(); } >cl /c a.c >link /dump /symbols a.obj 008 00000000 SECT3 notype () External | myadd 009 00000050 SECT3 notype () External | myadd2 00A 000000A0 SECT3 notype () External | main The link /dump command dumps the symbols that are part of the obj file.
diff --git a/docs/tags/index.html b/docs/tags/index.html
index 4df3d1f..db02fcf 100644
--- a/docs/tags/index.html
+++ b/docs/tags/index.html
@@ -1,6 +1,6 @@
-
+
Tags | Vineel Kovvuri
diff --git a/docs/tags/index.xml b/docs/tags/index.xml
index 3019d56..867d9f1 100644
--- a/docs/tags/index.xml
+++ b/docs/tags/index.xml
@@ -2,38 +2,38 @@
Tags on Vineel Kovvuri
- /tags/
+ //localhost:9999/tags/
Recent content in Tags on Vineel KovvuriHugo -- gohugo.ioen-usFri, 01 Nov 2019 18:33:07 -0700
-
+ Compilers
- /tags/compilers/
+ //localhost:9999/tags/compilers/
Fri, 01 Nov 2019 18:33:07 -0700
- /tags/compilers/
+ //localhost:9999/tags/compilers/Asm
- /tags/asm/
+ //localhost:9999/tags/asm/
Fri, 10 Aug 2018 18:33:07 -0700
- /tags/asm/
+ //localhost:9999/tags/asm/C
- /tags/c/
+ //localhost:9999/tags/c/
Fri, 10 Aug 2018 18:33:07 -0700
- /tags/c/
+ //localhost:9999/tags/c/Reversing
- /tags/reversing/
+ //localhost:9999/tags/reversing/
Fri, 10 Aug 2018 18:33:07 -0700
- /tags/reversing/
+ //localhost:9999/tags/reversing/
diff --git a/docs/tags/reversing/index.html b/docs/tags/reversing/index.html
index 6f09344..17a94fd 100644
--- a/docs/tags/reversing/index.html
+++ b/docs/tags/reversing/index.html
@@ -1,6 +1,6 @@
-
+
Reversing | Vineel Kovvuri
diff --git a/docs/tags/reversing/index.xml b/docs/tags/reversing/index.xml
index bffc989..c500f42 100644
--- a/docs/tags/reversing/index.xml
+++ b/docs/tags/reversing/index.xml
@@ -2,17 +2,17 @@
Reversing on Vineel Kovvuri
- /tags/reversing/
+ //localhost:9999/tags/reversing/
Recent content in Reversing on Vineel KovvuriHugo -- gohugo.ioen-usFri, 10 Aug 2018 18:33:07 -0700
-
+ A Newbie's Introduction To Compilation Process And Reverse Engineering
- /blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/
+ //localhost:9999/blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/
Fri, 10 Aug 2018 18:33:07 -0700
- /blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/
+ //localhost:9999/blog/a-newbies-introduction-to-compilation-process-and-reverse-engineering/Introduction Compilers are surely the complex programs of all times. Even today, writing a compiler with minimum set of tools is considered to be challenging. This tutorial scratches the surface of different compiler phases involved in translating a given source code to executable and also shows how this information is useful in context of reverse engineering.
GNU compiler collection provides an excellent set of tools for dissecting the compilation process and to understand the working of bits and bytes in the final executable.
diff --git a/docs/vlog/index.html b/docs/vlog/index.html
index c4e071d..12a6092 100644
--- a/docs/vlog/index.html
+++ b/docs/vlog/index.html
@@ -1,6 +1,6 @@
-
+
Vlog | Vineel Kovvuri
diff --git a/docs/vlog/index.xml b/docs/vlog/index.xml
index 4698dd8..08f34a9 100644
--- a/docs/vlog/index.xml
+++ b/docs/vlog/index.xml
@@ -2,10 +2,10 @@
Vlog on Vineel Kovvuri
- /vlog/
+ //localhost:9999/vlog/
Recent content in Vlog on Vineel KovvuriHugo -- gohugo.ioen-us
-
+