Closed Bug 1283763 Opened 4 years ago Closed 4 years ago

fix gdb pretty printers for nsTArray

Categories

(Firefox Build System :: General, defect)

defect
Not set
normal

Tracking

(firefox50 fixed)

RESOLVED FIXED
mozilla50
Tracking Status
firefox50 --- fixed

People

(Reporter: wcpan, Unassigned)

Details

Attachments

(1 file)

For types like "nsTArray<nsCOMPtr<nsIInputStream>>", the pretty printer will first match "nsCOMPtr", then throws exception because there is no "mRawPtr".
Not work for "mozilla::AlignedStorage2<nsTArray<mozilla::ipc::FileDescriptor> >".
Maybe needs some try-catch.
(In reply to Wei-Cheng Pan [:wcpan] [:wcp] [:legnaleurc] from comment #2)
> Not work for
> "mozilla::AlignedStorage2<nsTArray<mozilla::ipc::FileDescriptor> >".
> Maybe needs some try-catch.

It seems like there's a general problem here that the pretty printers will match basically anything containing nsTArray / nsCOMPtr / whatever, that's because the regexps are pretty general .*nsCOMPtr<.*>.* etc
iirc ^nsCOMPtr<.*>$ doesn't work for some reason that I don't think I investigated, I wonder if its because $ needs a '\n' to match.  Does ^nsCOMPtr<.*>.* work? similar for the other regexps of course.

btw seems like we should probably add a pretty printer for mozilla::AlignedStorage
Flags: needinfo?(wpan)
Comment on attachment 8767072 [details]
Bug 1283763 - Fix gdb pretty printers for nsTArray.

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/61776/diff/1-2/
^nsCOMPtr<.*>.* works. Acctually, ^nsCOMPtr<.*>$ works for me as well. What type didn't work for you?

I think .*TArray is too general, it will match any template class which contains nsTArray.
I guess the best way is to explicitly list all types.

This patch also solved "mozilla::AlignedStorage2<nsTArray<mozilla::ipc::FileDescriptor> >".
Flags: needinfo?(wpan)
(In reply to Wei-Cheng Pan [:wcpan] [:wcp] [:legnaleurc] from comment #5)
> ^nsCOMPtr<.*>.* works. Acctually, ^nsCOMPtr<.*>$ works for me as well. What
> type didn't work for you?

hrm, it works for me too now so I have no idea :(

> I think .*TArray is too general, it will match any template class which
> contains nsTArray.
> I guess the best way is to explicitly list all types.

yeah, or maybe \w+ or something would work, but just listing them all certainly does.

> This patch also solved
> "mozilla::AlignedStorage2<nsTArray<mozilla::ipc::FileDescriptor> >".

yeah as expected though of course we should add a printer for AlignedStorage right?
Attachment #8767072 - Flags: review?(tbsaunde+mozbugs) → review+
Pushed by cbook@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/0d73ad04a536
Fix gdb pretty printers for nsTArray. r=tbsaunde
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/0d73ad04a536
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla50
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.