DynamoRIO / DynamoRIO/drmemory
misleading message from frontend after options usage error
- Dominant language
- C
- Stars
- 2.7k
- Forks
- 290
- PR merge metrics
- No merged PRs in 30d
Description
_From [bruen...@google.com](https://code.google.com/u/109494838902877177630/) on June 19, 2014 17:57:56_
I made the -callstack_max_frames minimum be 6 (b/c our default supps
have 5) and this is what happens if you pass a lower value:
% ~/drmemory/git/build_x86_dbg/bin/drmemory.exe -callstack_max_frames 3 -batch -pause_at_assert -dr d:/derek/dr/git/exports -- ./base_unittests.exe --gtest_filter=ToolsSanityTest.*
~~Dr.M~~ Usage error on option "-callstack_max_frames": value is outside allowed range: aborting
Dr. Memory options (use -no_ to disable bool):
-version [ false] Display Dr. Memory version
-help [ false] Display option list
-dr [ ""] Path to DynamoRIO installation
-drmemory [ ""] Path to Dr. Memory installation
-top_stats [ false] Show time taken and memory usage of whole process
-fetch_symbols [ false] Fetch missing symbol files at the end of the run
-follow_children [ true] Monitor child processes
-nudge [ 0] Process id to nudge
-v [ false] Display verbose information in the Dr. Memory front end
-light [ false] Enables a lightweight mode that detects only critical errors
-brief [ false] Show simplified and easier-to-read error reports
-visual_studio [ false] Produce Visual Studio external tool output
-logdir ["/logs"] Base directory for result file subdirectories and symbol cache
-verbose [ 1] Verbosity level in log files
-quiet [ false] Suppress stderr messages and results
-results_to_stderr [ true] Print error reports to stderr in addition to results.txt
-prefix_style [ 0] Adjust the default output per-line prefix
-log_suppressed_errors [ false] Log suppressed error reports for postprocessing.
-ignore_asserts [ false] Do not abort on debug-build asserts
-exit_code_if_errors [ 0] If non-zero, the app's exit code is changed to this if errors are found
-pause_at_error [ false] Pause at each reported error of any type
-pause_at_unaddressable [ false] Pause at each unaddressable access
-pause_at_uninitialized [ false] Pause at each uninitialized read
-pause_at_exit [ false] Pause at exit
-pause_at_assert [ false] Pause at each debug-build assert
-pause_via_loop [ false] Pause via loop (not wait for stdin)
-crash_at_unaddressable [ false] Crash at the first reported unaddressable access
-crash_at_error [ false] Crash at the first reported error of any type
-dump_at_error_mask [ 0] Creates a memory dump file at the specified errors
-dump_at_unaddressable [ false] Creates a memory dump file at unaddressable errors
-callstack_max_frames [ 20] How many call stack frames to record
-malloc_max_frames [ 12] How many call stack frames to record on each malloc
-free_max_frames [ 10] How many call stack frames to record on each free
-callstack_style [0x0301] Set of flags that controls the callstack printing style
-callstack_truncate_below ["main,wmain,WinMain,wWinMain,_RtlUserThreadStart,_threadstartex,BaseThreadInitThunk"] ,-separated list of function names at which to truncate callstacks
-callstack_modname_hide ["_drmemory_"] ,-separated list of module names to hide in callstack frames
-callstack_exe_hide [ true] Whether to omit the executable name from callstack frames
-callstack_srcfile_hide [ ""] ,-separated list of source file paths to hide in callstack frames
-callstack_srcfile_prefix [ ""] ,-separated list of path prefixes to remove
-lib_blacklist [ ""] ,-separated list of path patterns to treat as non-app libs
-lib_blacklist_frames [ 4] The number of frames to match vs -lib_blacklist
-lib_whitelist [ ""] ,-separated list of path patterns for which to report errors
-lib_whitelist_frames [ 4] The number of frames to match vs -lib_whitelist
-src_whitelist [ ""] ,-separated list of source patterns for which to report errors
-src_whitelist_frames [ 4] The number of frames to match vs -src_whitelist
-check_uninit_blacklist [ ""] ,-separated list of module basenames in which to not check uninits
-callstack_use_top_fp [ true] Use the top-level ebp/rbp register as the first frame pointer
-callstack_use_top_fp_selectively [ true] Use the top-level ebp/rbp register as the first frame pointer in certain situations
-callstack_use_fp [ true] Use frame pointers to walk the callstack
-callstack_conservative [ false] Perform extra checks for more accurate callstacks
-callstack_max_scan [ 2048] How far to scan to locate the first or next stack frame
-callstack_bad_fp_list [ ""] ,-separated list of path patterns where frame pointers are untrustworthy
-check_leaks [ true] List details on memory leaks detected
-count_leaks [ true] Look for memory leaks
-symbol_offsets [ false] Deprecated: use -callstack_style flag 0x4
-ignore_early_leaks [ true] Ignore pre-app leaks
-check_leaks_on_destroy [ true] Report leaks on heap destruction
-possible_leaks [ true] Show possible-leak callstacks
-check_encoded_pointers [ true] Check for encoded pointers
-midchunk_size_ok [ true] Consider mid-chunk post-size pointers legitimate
-midchunk_new_ok [ true] Consider mid-chunk post-new[]-header pointers legitimate
-midchunk_inheritance_ok [ true] Consider mid-chunk multi-inheritance pointers legitimate
-midchunk_string_ok [ true] Consider mid-chunk std::string pointers legitimate
-scan_read_only_files [ false] Whether the leak scan should scan read-only file-mapped memory
-strings_vs_pointers [ true] Use heuristics to rule out sub-strings as leak scan pointers
-show_reachable [ false] List reachable allocs
-suppress [ ""] File containing errors to suppress
-default_suppress [ true] Use the set of default suppressions
-gen_suppress_offs [ true] Generate mod+offs suppressions in the output suppress file
-gen_suppress_syms [ true] Generate mod!syms suppressions in the output suppress file
-show_threads [ true] Print the callstack of each thread creation point referenced in an error
-show_all_threads [ false] Print the callstack of each thread creation point
-conservative [ false] Be conservative whenever reading application memory
-check_uninit_cmps [ true] Check definedness of comparison instructions
-check_uninit_non_moves [ false] Check definedness of all non-move instructions
-check_uninit_all [ false] Check definedness of all instructions
-strict_bitops [ false] Fully check definedness of bit operations
-stack_swap_threshold [0x9000] Stack change amount to consider a swap
-redzone_size [ 16] Buffer on either side of each malloc
-report_max [ 20000] Maximum non-leak errors to report (-1=no limit)
-report_leak_max [ 10000] Maximum leaks to report (-1=no limit)
-show_duplicates [ false] Print details on each duplicate error
-batch [ false] Do not invoke notepad at the end
-summary [ true] Display a summary of results to stderr
-use_symcache [ true] Cache results of symbol lookups to speed up future runs
-symcache_dir ["/logs/symcache"] Directory for symbol cache files
-symcache_minsize [ 1000] Minimum module size to cache symbols for
-use_symcache_postcall [ true] Cache post-call sites to speed up future runs
-preload_symbols [ false] Preload debug symbols on module load
-skip_msvc_importers [ true] Do not search for alloc routines in modules that import from msvc_
-warn_null_ptr [ false] Warn if NULL passed to free/realloc
-delay_frees [ 2000] Frees to delay before committing
-delay_frees_maxsz [20000000] Maximum size of frees to delay before committing
-delay_frees_stack [ false] Record callstacks on free to use when reporting use-after-free
-leaks_only ...
_Original issue: http://code.google.com/p/drmemory/issues/detail?id=1569_
Contributor guide
Assessment
This issue has not been assessed yet.