diff --git a/README.md b/README.md index 83b419b..3ae4a57 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ This project generates a call graph from an executable binary compiled with debu - Includes a minimal C example program for testing. - Validates input for robustness and usability. -## Prerequisites 🛠️📝🔌 +## Prerequisites ### Software Requirements 🌐🛠️📊 - `gdb` (GNU Debugger) - `awk` (or `gawk` for enhanced features) @@ -34,13 +34,13 @@ project/ ``` ## Installation 🔄🎮🌐 -1. Clone the repository: 📦🔗🌍 +1. Clone the repository: ```bash git clone cd project ``` -2. Make the scripts executable: 🌧️🛠️🔧 +2. Make the scripts executable: 🛠️🔧 ```bash chmod +x callgraph.sh generate_graph.awk ``` @@ -51,41 +51,41 @@ project/ ``` ## Usage 🛠️🔗🔄 -### 1. Compile the Example Program 🔧🔄🔖 -Compile the included `example.c` program with debugging symbols: 🔧🏋️‍♂️🎮 +### 1. Compile the Example Program +Compile the included `example.c` program with debugging symbols: ```bash gcc -g -o example example.c ``` ### 2. Generate the Call Graph 🎮🌄🏋️‍♂️ -Run the shell script with the compiled binary: 📦🔍🎮 +Run the shell script with the compiled binary: ```bash ./callgraph.sh ./example > callgraph.txt ``` ### 3. Generate the DOT Graph 🌍🔍📦 -Use the AWK script to convert the call graph data into a DOT file: 🔗🔦🎮 +Use the AWK script to convert the call graph data into a DOT file: ```bash ./generate_graph.awk callgraph.txt > callgraph.dot ``` ### 4. Visualize the Graph (Optional) 📝🎮🎨 -Render the DOT file using Graphviz: 🔄🌧️🎮 +Render the DOT file using Graphviz: ```bash dot -Tpng callgraph.dot -o callgraph.png ``` -Open `callgraph.png` to view the generated graph. 🎨🎮🌄 +Open `callgraph.png` to view the generated graph. 🎨🌄 -## Example 🎮🌟🌄 -### Input (Function Call Data) 🔦🔄🌧️ +## Example 🌟🌄 +### Input (Function Call Data) ```bash foo bar bar baz baz qux ``` -### Output (DOT Format) 🌧️🎨🎮 +### Output (DOT Format) ```dot digraph G { "foo" -> "bar"; @@ -94,32 +94,32 @@ digraph G { } ``` -### Visualized Graph 🎨🎮🔍 +### Visualized Graph The graph will show the relationships between functions as directed edges. 🔧🎨🌧️ -## Contributing 🌟🌈🌄 -1. Fork the repository. 🌧️📝🔧 -2. Create a new branch: 🎮🔄🌟 +## Contributing 🌟🌈 +1. Fork the repository. +2. Create a new branch: ```bash git checkout -b feature-name ``` -3. Make your changes and commit: 🌧️🎮🔗 +3. Make your changes and commit: ```bash git commit -m "Add feature" ``` -4. Push to your branch: 🌟📝🎨 +4. Push to your branch: ```bash git push origin feature-name ``` -5. Open a pull request. 🎮🔧🔦 +5. Open a pull request. ## License 🌄🔍🎮 -This project is licensed under the MIT License. See the LICENSE file for details. 🌟🔄🌧️ +This project is licensed under the AGPL License. See the LICENSE file for details. ## Acknowledgments 🌟🔗🔧 -- The GNU Project for `gdb` and `gcc`. 📝🎨🌄 -- Graphviz for the graph visualization tools. 🌧️🎨🌄 +- The GNU Project for `gdb` and `gcc`. +- Graphviz for the graph visualization tools. ## Contact 🌐📦🌎 -For questions or feedback, please open an issue in the repository. 🔄🌟🎨 +For questions or feedback, please open an issue in the repository.