--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEV-rjfWo9%3D24FeUyOLapNcvyQYXf4yyfKU7VJ93A%2B8u7mcFBQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAE5mQiPO_wKbAnaocJZSby5MFuDKuiQtdp-d1qSGff05cSwkjA%40mail.gmail.com.
Bear in mind that we plan to have NOTREACHED() become [[noreturn]] (by becoming a synonym for IMMEDIATE_CRASH() in Release builds, for example), so that surrounding code doesn't need e.g. redundant returns, etc.If we want to allow debuggers to continue past a particular breakpoint then we do need a distinct mechanism that is guaranteed not to be [[noreturn]], to ensure that there is actually code to continue into. Retaining a BreakDebugger()-ish call for that purpose seems reasonable, but we should add it to the PRESUBMIT checks so it can't be accidentally used in production.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CALekkJcKhUsSyutcyTMzEVtcghutnaWnq_pCpY7UM2t4CRTZwQ%40mail.gmail.com.
No, I'm specifically talking about NOTREACHED(), not DCHECKs, CHECKs or other conditional crashers.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAKQnr0QfCfyFoMdf%2BSNdYwN5goXika0nH5hbMh%3DgqrpqnwiMzA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CA%2ByH71e-mxh9yADB9v8HnKyz2LFpMsFopxn%3DkujWcndOcjj%2B5g%40mail.gmail.com.
OK, so there's a lot of specific points here I'll need to read and re-read in detail but it sounds like in general there are some folks who would be sad if DCHECK and friends weren't something you could step over in a local build.I'll look at a way to continue adapting the various interesting callsites here in a way similar to how CHECK() currently works (and how LOG(ERROR) works with my recent change)
such that in official builds it is an immediate crash that has the properties we want for crash dumps, but still works more or less how BreakDebugger has worked in the past for non-official, I think - and look at ways to make sure this doesn't regress in future.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEV-rjd0gzsmAaFK00tVKZepc2YCxWKxqFQWJbDyKXKxRyhdcg%40mail.gmail.com.To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEV-rjetm40M%2Bh3eRga8eV1Fzen6v9oaKqGMsybf%3Dz4Pp3KKdA%40mail.gmail.com.
>It has already been the case for over a year that CHECK() in official builds is implemented as IMMEDIATE_CRASH and cannot be continued past in a debugger,
This doesn't appear to be the case for me.Visiting chrome://checkcrash, which calls directly into CHECK(false) [source] on Chrome Stable 68.0.3440.75 (Official Build) (64-bit) (cohort: 68_75_win) gives me crash which is hitting INT 30:000> uchrome_child!content::HandleChromeDebugURL+0x484 [C:\b\c\b\win64_clang\src\content\renderer\render_frame_impl.cc @ 934]:00007ffc`aadb578f cc int 3
Will
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEV-rjetm40M%2Bh3eRga8eV1Fzen6v9oaKqGMsybf%3Dz4Pp3KKdA%40mail.gmail.com.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEV-rjd0gzsmAaFK00tVKZepc2YCxWKxqFQWJbDyKXKxRyhdcg%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEV-rjd0gzsmAaFK00tVKZepc2YCxWKxqFQWJbDyKXKxRyhdcg%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEV-rjetm40M%2Bh3eRga8eV1Fzen6v9oaKqGMsybf%3Dz4Pp3KKdA%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/4a10db07-963a-452e-9bea-44d413ffde10%40chromium.org.
I mean LOG(FATAL), sorry. :)You should not expect to be able to use is_official_build=true for development purposes - do you have a specific reason why you need to do that?
It has already been the case for over a year that CHECK() in official builds is implemented as IMMEDIATE_CRASH and cannot be continued past in a debugger, so if nobody has noticed/complained about that already, then I suspect you won't be affected by the changes I want to make either :)
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.
On Thu, Jul 26, 2018 at 1:34 PM, Torne (Richard Coles) <to...@chromium.org> wrote:I mean LOG(FATAL), sorry. :)You should not expect to be able to use is_official_build=true for development purposes - do you have a specific reason why you need to do that?CEF distributes Release and Debug binaries to embedders. We've found a few things from past experience:
- Setting "is_official_build=true" for Release builds and "is_official_build=false" for Debug builds would result in unexpected behavior differences. Most of these were either bugs or confusion (https://crbug.com/574126), but we prefer to avoid them in our distributions.
- Using "is_official_build=true is_debug=false dcheck_always_on=true" gives us most of the same debugging advantages as "is_official_build=true is_debug=true" but without the significant binary size and performance penalties of an actual is_debug=true build.
It has already been the case for over a year that CHECK() in official builds is implemented as IMMEDIATE_CRASH and cannot be continued past in a debugger, so if nobody has noticed/complained about that already, then I suspect you won't be affected by the changes I want to make either :)In that case maybe it's fine :)
In my experience there's a pretty substantial quality/quantity difference between CHECK() and DCHECK() usage in some parts of the Chromium code. For example, I regularly experience DCHECK()s in Blink code that are actually survivable (and most have unresolved bugs).
owever, I usually also have a local non-official build so having DCHECK()s in official builds IMMEDIATE_CRASH for me is not a big deal personally.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
On Thu, 26 Jul 2018 at 14:13 Marshall Greenblatt <magree...@gmail.com> wrote:On Thu, Jul 26, 2018 at 1:34 PM, Torne (Richard Coles) <to...@chromium.org> wrote:I mean LOG(FATAL), sorry. :)You should not expect to be able to use is_official_build=true for development purposes - do you have a specific reason why you need to do that?CEF distributes Release and Debug binaries to embedders. We've found a few things from past experience:
- Setting "is_official_build=true" for Release builds and "is_official_build=false" for Debug builds would result in unexpected behavior differences. Most of these were either bugs or confusion (https://crbug.com/574126), but we prefer to avoid them in our distributions.
We have three kinds of build: debug, release, and official. You should think of official builds as a different thing altogether, not as a separate flag - they're only implemented as two separate booleans for historical reasons at this point (you cannot have an official debug build, there's an assert banning it). Debug and release builds are both for development, and official builds are for distribution.
If you expect to use them differently then you're going to run into unexpected things, because that's not how the project uses them.
- Using "is_official_build=true is_debug=false dcheck_always_on=true" gives us most of the same debugging advantages as "is_official_build=true is_debug=true" but without the significant binary size and performance penalties of an actual is_debug=true build.
I'm not sure what you mean by "debugging advantages" here. The only thing you are doing there that's different to an official build is enabling DCHECKs, which seems like it has no effect on how easy debugging is.
It has already been the case for over a year that CHECK() in official builds is implemented as IMMEDIATE_CRASH and cannot be continued past in a debugger, so if nobody has noticed/complained about that already, then I suspect you won't be affected by the changes I want to make either :)In that case maybe it's fine :)In my experience there's a pretty substantial quality/quantity difference between CHECK() and DCHECK() usage in some parts of the Chromium code. For example, I regularly experience DCHECK()s in Blink code that are actually survivable (and most have unresolved bugs).Right, and that's one of the reasons why we don't ship builds with DCHECKs enabled, because they trigger sometimes in cases where nothing is actually wrong due to bugs :)owever, I usually also have a local non-official build so having DCHECK()s in official builds IMMEDIATE_CRASH for me is not a big deal personally.Well, we don't enable DCHECKs in any official builds, so in some regards what happens there isn't relevant, but what I'm aiming for is having all the places in Chrome that crash intentionally crash in a consistent way (even though that way may be different in different build configurations, I don't want it to be different between different code paths in the same build configuration), so I'd rather not intentionally leave DCHECK out.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.