diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-02-16 23:13:55 +0530 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2016-02-16 23:13:55 +0530 |
commit | 7aedb9c7cdcc1b67c1d6d01f36f2fe7c1a17ddac (patch) | |
tree | ff2fbfbab8196a2c39069e914ce8eb134a599f1a /components/script/script_thread.rs | |
parent | 8199bbaf0e2fd702631efd227c1eda785f970abe (diff) | |
parent | 4d38b82582be4bd7f6f0113183260bfba4709917 (diff) | |
download | servo-7aedb9c7cdcc1b67c1d6d01f36f2fe7c1a17ddac.tar.gz servo-7aedb9c7cdcc1b67c1d6d01f36f2fe7c1a17ddac.zip |
Auto merge of #9600 - danlrobertson:opts_parser_err, r=ecoal95
Add informative error messages when parsing command line options returns an error
The background behind why I'm submitting this PR is slightly embarrassing. After running `./mach` with some servo options I got the following stack backtrace.
```
thread '<main>' panicked at 'called `Result::unwrap()` on an `Err` value: ParseIntError { kind: InvalidDigit }', ../src/libcore/result.rs:746
stack backtrace:
1: 0x56459001b0b0 - sys::backtrace::tracing::imp::write::hb120982054a416e35nu
2: 0x56459001e02b - panicking::default_handler::_$u7b$$u7b$closure$u7d$$u7d$::closure.42840
3: 0x56459001dc96 - panicking::default_handler::h7ae2e4523ef4c187IFy
4: 0x56459000760c - sys_common::unwind::begin_unwind_inner::h5fb19481d14902dbDgt
5: 0x564590007cf8 - sys_common::unwind::begin_unwind_fmt::hd62d57279546b0f2Jft
6: 0x56459001a701 - rust_begin_unwind
7: 0x56459004c01f - panicking::panic_fmt::h27f7225e08792f40qYL
8: 0x56458f393901 - result::unwrap_failed::h18215968003310890981
at ../src/libcore/macros.rs:29
9: 0x56458f3937b9 - result::Result<T, E>::unwrap::h10319050269194353824
at ../src/libcore/result.rs:687
10: 0x56458f383701 - opts::from_cmdline_args::h8ea8d8c87dc6ee726lg
at /home/drobertson/git/servo/components/util/opts.rs:599
11: 0x56458d1f8cdf - main::h8517eb49d15e90fbNaa
at /home/drobertson/git/servo/components/servo/main.rs:53
12: 0x56459001d8f4 - sys_common::unwind::try::try_fn::h9076850075504893162
13: 0x56459001a68b - __rust_try
14: 0x56459001d36e - rt::lang_start::h58a22f304b0c1e19Oxy
15: 0x56458d2f4aa9 - main
16: 0x7f370496360f - __libc_start_main
17: 0x56458d1c04a8 - _start
18: 0x0 - <unknown>
Servo exited with return value 101
```
I immediately opened up `gdb` and got to work only to realize that the error was due to a typo in an option that had been `unwrap`ed at [components/util/opts.rs:599](https://github.com/servo/servo/blob/master/components/util/opts.rs#L599). Perhaps some more informative error messages will help prevent some future face-palm moments like mine :smile:
I couldn't think of a good way to add tests for this. Please let me know if I missed something. Comments and critiques are welcome!
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9600)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/script_thread.rs')
0 files changed, 0 insertions, 0 deletions