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)
- [upb] Build failure on x64-windows HOT 2
- [<port name>] build failure HOT 4
- [json-c] vcpkg install json-c build failure HOT 13
- [abseil] Build error on x64-windows (insufficient resource) ? HOT 6
- [boost] error: File does not have the expected hash: HOT 4
- [skia] Unresolved external symbol SkSVGDOM::Builder::make HOT 4
- [libmysql] build failure in libedit because warnings as errors HOT 1
- [libiconv] build error HOT 1
- [bzip2] Build failure on arm64-osx HOT 1
- [libiconv] build failure HOT 3
- [ffmpeg] Build error on x64-osx HOT 1
- [libcap] Build error on x64-linux HOT 2
- [New Port Request] rapidhash
- Baseline regression: CI file conflicts from mesa's new libegl on windows HOT 1
- [suitesparse] Build error on x64-windows HOT 1
- [suitesparse] Build error on x64-windows HOT 7
- [libiconv] build failure HOT 4
- [libdeflate] Build error on x64-linux HOT 1
- [ffmpeg] linux/arm64 build failure
- [libdeflate] Build error on x64-linux HOT 5
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.