Comments (7)
Maybe time to collect useful resources? But I don't know where to start.
https://www.tweag.io/blog/2023-11-23-debug-fission/
from vcpkg.
Would it be a reasonable addition to add -g to Release builds on Linux?
IMHO yes.
Though storing debug symbols on Linux is a major PITA.
from vcpkg.
We use debuginfod internally. It rocks
from vcpkg.
Do you use it on dev machines too?
from vcpkg.
Some information
The option CMAKE_<LANG>_FLAGS_<CONFIG>
first introduced in eba9f6a while added /Zi
, and update to /Z7
in 26516fe with current options, and eventually inherited to scripts/toolchains/windows.cmake
.
For the option CMAKE_<LANG>_FLAGS_<CONFIG>_INIT
in scripts/toolchains/linux.cmake
, it introduced in f35ff4c.
It seems there is no special instructions for adding debug info options
Referrence
https://learn.microsoft.com/en-us/cpp/build/reference/z7-zi-zi-debug-information-format?view=msvc-170
https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Debugging-Options.html
from vcpkg.
@WangWeiLin-MV sure, I understand it's not too difficult to add them manually (and that's what I did for us). However, the issue here is about the inconsistent defaults. On Windows, you just get symbols by default. On linux, by defaut, you don't.
People here are talking about symbol storage/splitting as well. In my opinion, this is out of scope for vcpkg (it doesn't do storage for windows either), but a great way to do symbol storage on Linux is build with symbols, store the binaries in a place accessiable by a debuginfod server, then strip the binaries you ship to customers. Then debuggers (lldb and gdb both support this) can be pointed to your server to download the debug symbols. It can even download executables in cases like coredumps that those are not available.
(I'm now worried I misread your comment...not sure if you're saying "no special instruction" as in "current state is fine" or that "it would not be special/difficult to pass -g by default")
from vcpkg.
@russelltg Sorry for not making it clearer. I only looked into the change history and found that there's no comments or documents was given about the options added many years ago, so further research is needed on current issue.
from vcpkg.
Related Issues (20)
- [sdl2] build failure on debian sid, make dbus optional dep of sdl2 HOT 1
- [angle] build failure ios
- [zeroc-ice] Using find_package(Ice COMPONENTS Ice Glacier2 REQUIRED) fails, missing: Ice_SLICE_DIR HOT 1
- [Simd] update to 6.1.140
- [vcpkg-tool]vcpkg_abi_info.txt add glibc/glibcxx on Linux HOT 4
- [openssl] Build error on arm64-android HOT 7
- [msquic] Build error on arm64-windows HOT 9
- [glib] Build error on x64-windows
- [vcpkg_cmake_config_fixup] allow custom TARGET_PATH HOT 6
- Modifying code procedure does not work. HOT 16
- [buildsystems] applocal.py incorrectly modifies the dynamic library name
- [qtbase] build failure HOT 6
- [tbb] Build error on x64-mingw-static HOT 1
- [icu] [python3] list of dependencies for Red Hat needs updating
- [libigl] cannot find imguizmo-config.cmake
- [grpc] Build failure
- [grpc] Build failure HOT 1
- [opecv4] build failure HOT 2
- Use dotnet nuget instead of nuget.exe and mono for binary caching HOT 1
- [tbb] Build error on x64-mingw-static HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vcpkg.