5

While downloading MySQL Workbench for my Debian-based Linux system, I encountered two packages. The first one is called mysql-workbench-community_8.0.30-1ubuntu22.04_amd64.deb while the second one mysql-workbench-community-dbgsym_8.0.30-1ubuntu22.04_amd64.deb, the latter being larger in size:

enter image description here

What are the differences between the two packages? Which one should I use?

2 Answers 2

10

The dbgsym package contains debug symbols.

TLDR

Ignore the dbgsym package

Details

If your program (mysql in this case) is written in a compiled language such as C, C++, Go, Rust, etc and converted into an executable then debug information allows a certain amount of referencing locations and values from the executable back to the original source code.

For example it can say that bytes 300 through 312 and 340 through 356 came from line 127 of file src/main.c.

Also it can say that the variable foo is stored in register %r12 when the program counter is between 500 and 512.

If the program crashes, perhaps due to doing a divide by zero, then being able to say that you were executing a particular source code line and using a particular variable can make things much simpler to get a fix.

However all of this information takes space. As most people are not going to want to debug programs such as mysql, distributions frequently split the debug information out into an additional package so that people who are not interested don't pay the costs of downloading and storing it.

1
  • 1
    Shoutout to all the other people like me that assumed db at the beginning of the name meant "database". =) Aug 4 at 15:34
5

dbgsym stands for "Debug SYMbols." Unix culture tends to whittle down filenames to the absolute minimum.

What it contains is just that - the symbol tables that a debugger would need to make sense out of a core dump if the application encounters a drastic error, translating pointer addresses to (presumably) readable function names.

Standard procedure with compiling is to strip symbol names out of the final product because it saves a chunk of space.

TL;DR if you don't know what this package is, you very likely won't need it.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.