Skip to main content

How to use gdb in Ubuntu Terminal

Here's a practical, minimal guide for using GDB in Ubuntu terminal — from launching to setting breakpoints and navigating your code. 🧰 Step 1: Compile with Debug Symbols Use -g and disable optimizations ( -O0 preferred for debugging): bash Copy Edit g++ -g -O0 -o myprog myprog.cpp 🚀 Step 2: Launch GDB bash Copy Edit gdb ./myprog You'll see a (gdb) prompt. 🎯 Step 3: Set Breakpoints You can set breakpoints in three main ways : ✅ a. At a function gdb Copy Edit (gdb) break main ✅ b. At a specific file and line gdb Copy Edit (gdb) break myprog.cpp:42 ✅ c. At a method in a class gdb Copy Edit (gdb) break MyClass::doSomething If the symbol is mangled (C++), GDB usually demangles automatically, especially if compiled with -g . ▶️ Step 4: Run the Program gdb Copy Edit (gdb) run 🧭 Step 5: Navigate Command Meaning next or n Step over current line step or s Step into function call finish Run until current function returns continue or c Continue until...

Reduct image size Ubuntu terminal

To reduce the size of a JPG image on Ubuntu (from MB to KB), you can use the convert command from the ImageMagick package. Here's how to do it:

Install ImageMagick

If it's not already installed, you can install it using:

bash
sudo apt update sudo apt install imagemagick

Reduce Image Size

Use the following command to compress the image:

bash
convert input.jpg -quality 75 output.jpg

Explanation:

  • input.jpg: The original image file.
  • -quality 75: Sets the compression level (1–100). Lower values reduce file size but can decrease image quality.
  • output.jpg: The compressed image.

Additional Options for Further Size Reduction:

  1. Resize the image to smaller dimensions:

    bash
    convert input.jpg -resize 50% output.jpg

    This reduces the width and height by half.

  2. Specify exact dimensions:

    bash
    convert input.jpg -resize 800x600 output.jpg

    Replace 800x600 with your desired resolution.

  3. Strip metadata to save space:

    bash
    convert input.jpg -strip -quality 75 output.jpg

Check the Resulting File Size

Use ls to verify the new file size:

bash
ls -lh output.jpg

Automating the Process for Multiple Files

To compress all JPG files in a directory:

bash
for img in *.jpg; do convert "$img" -quality 75 "compressed_$img" done
-------------------

Query: my jpg size 2.8-3.1 MB, I wn it to be in kb. how to do using convert as sbove. I used command
convert input.jpg -quality 75 output.jpg but output is of size 1.2-1.7 MB
ChatGPT said:

To further reduce the size of your .jpg images (from MB to KB), you can tweak the parameters for the convert command. Here’s how:

1. Lower the Quality Even More

Try reducing the quality percentage further (e.g., 50 or 30):

bash
convert input.jpg -quality 50 output.jpg

2. Resize the Image Dimensions

If reducing the quality alone isn’t enough, resize the image dimensions (e.g., to 50% of its original size):

bash
convert input.jpg -resize 50% -quality 50 output.jpg

You can also specify exact dimensions, such as:

bash
convert input.jpg -resize 800x600 -quality 50 output.jpg

3. Use Strip Metadata

Images often contain metadata (EXIF, GPS info, etc.) that can increase file size. Use the -strip option to remove unnecessary metadata:

bash
convert input.jpg -strip -quality 50 output.jpg

4. Combine All Options

To maximize compression, combine resizing, quality reduction, and metadata stripping:

bash
convert input.jpg -resize 800x600 -strip -quality 30 output.jpg

5. Verify the Output

After running the commands, check the file size:

bash
ls -lh output.jpg

Let me know if you need further fine-tuning!

----------------------

Comments

Popular posts from this blog

Ubuntu Notes: Set up autossh as systemd useful-reminder commands

 sudo vim /etc/systemd/system/permanentAutossh.service ======================================== [Unit] Description=Keeps a tunnel to myOciFreeNat open After=network-online.target [Service] User=<username> Environment="AUTOSSH_GATETIME=0" ExecStart=/usr/bin/autossh -M 0 -q -N -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -L 4322:127.0.0.1:5432 -i /<ssh_private_key_file_absolute_path> <username>@<ip_address> -p 22 [Install] WantedBy=multi-user.target ======================================== sudo systemctl daemon-reload sudo systemctl enable permanentAutossh sudo systemctl start permanentAutossh ================== sudo systemctl daemon-reload sudo systemctl restart permanentAutossh sudo systemctl status permanentAutossh ====================== sudo systemctl stop permanentAutossh sudo systemctl disable permanentAutossh sudo rm /etc/systemd/system/permanentAutossh.service

syslog cpp programming: learning using chatGcp

  Introduction to Syslog C++ August 27, 2024 This conversation may reflect the link creator’s personalized data, which isn’t shared and can meaningfully change how the model responds. You said: I am new to syslog in cpp programming n just starting. Can you teach me ChatGPT said: ChatGPT Sure! syslog is a standard for logging system messages in Unix-like operating systems. It provides a way to send log messages to the system log, which can then be collected and analyzed by various tools. Here's a basic guide to get you started with syslog in C++: 1. Include the Necessary Header To use syslog , you need to include the syslog.h header: cpp Copy code # include <syslog.h> 2. Open the Connection to syslog Before sending log messages, you need to open a connection to the syslog system. This is typically done at the start of your program: cpp Copy code openlog ( "your_program_name" , LOG_PID | LOG_CONS, LOG_USER); "your_program_name" : A string representing ...

Ubuntu - C++ Notes: Install & update boost c++ library from git (may contain some error in process mentioned below)

 Boost C++ Library Installation from git in ubuntu: 1. create a directory named boost in your desired location and go to that directory mkdir boost;cd boost; 2. clone boost recursively from git using command git clone --recursive https://github.com/boostorg/boost.git 3. cd boost; sudo ./bootstrap.sh; 4. sudo ./b2; 5. sudo ./b2 install; DONE! --------------------------- Boost C++ Library Update Verson from git in Ubuntu: 1. go to gitDownloads/boost directory cd gitDownloads/boost; 2. git pull; 3. git submodule update --recursive; 4. cd boost; sudo ./bootstrap.sh; 5. sudo ./b2; 6. sudo ./b2 install; DONE!