4.2 Tab Completion 4.4 Simics's Search Path
Simics User's Guide  /  II Feature Overview  /  4 The Command Line Interface  / 

4.3 Help System

The most useful Simics commands are grouped into categories. To list these categories, just type help at the command prompt. The list should look like this:

simics> help
[...]
To get you started, here is a list of command categories:
  Breakpoints                  Files and Directories        Python                    
  CD-ROM                       GUI                          Real Network              
  Changing Simulated State     Haps                         Registers                 
  Command Line Interface       Help                         Reverse Execution         
  Components                   Inspecting Simulated State   Simics Search Path        
  Configuration                Logging                      Speed                     
  Debugging                    Memory                       Symbolic Debugging        
  Disk                         Modules                      Test                      
  Distributed Simulation       Networking                   Tracing                   
  Ethernet                     Output                                                 
  Execution                    Profiling                                              
[...]

Note that since Simics's configuration can change between sessions and even dynamically through the loading of modules, the list of commands and command categories may look different.

Type help category for a list of commands, e.g., help "Changing Simulated State" will list all commands belonging to that category:

simics> help "Changing Simulated State"
Commands available in the "Changing Simulated State" category:

  <image>.set                  set bytes in image to specified value
  <int_register>.write-reg     write to register
  <memory-space>.load-binary   load binary (executable) file into memory
  <memory-space>.load-file     load file into memory
  <memory-space>.set           set physical address to specified value without side-effects
  <memory_space>.write         set physical address to specified value
  <port_space>.set             set physical address to specified value without side-effects
  <port_space>.write           set physical address to specified value
  <processor_info>.disable     switch processor off
  <processor_info>.enable      switch processor on
  <processor_info>.load-binary load binary (executable) file into memory
  <processor_info>.set-pc      set the program counter

  load-binary                  load binary (executable) file into memory
  load-file                    load file into memory
  pdisable                     switch processor off
  penable                      switch processor on
  set                          set physical address to specified value
  set-pc                       set the current processor's program counter
  write-reg                    write to register

Type help command to print the documentation for a specific command.

The help command can do much more than printing command documentation: it gives you access to nearly all Simics documentation about commands, classes, modules, interfaces, API types and functions, haps and more according to the configuration loaded in the simulator. All documentation is also available in the reference manuals.

Here are some more examples of usage of the help command:

simics> help print-time
[... print-time command documentation ...]

simics> help board.mb.cpu0.core[0][0].disassemble
[... <processor_info>.disassemble command documentation ...]

simics> help <processor_info>.disassemble
[... <processor_info>.disassemble command documentation ...]

simics> help board.mb.cpu0.core[0][0]
[... <x86QSP1> class documentation ...]

simics> help x86QSP1
[... <x86QSP1> class documentation ...]

simics> help processor_info
[... <processor_info> interface documentation ...]

simics> help board.mb.cpu0.core[0][0].freq_mhz
[... <x86QSP1>.freq_mhz attribute documentation ...]

simics> help x86QSP1.freq_mhz
[... <x86QSP1>.freq_mhz attribute documentation ...]

simics> help Core_Exception
[... Core_Exception hap documentation ...]

simics> help SIM_get_mem_op_type
[... SIM_get_mem_op_type() function declaration ...]

simics> help x86-intel64-turbo
[... x86-intel64-turbo module documentation ...]

When a name matches several help topics (for example, a command and an attribute, or a module and a class), help will print out the first topic coming in this order: command categories, commands, classes, interfaces, haps, modules, attributes, API functions and symbols. It will also inform you at the end of the documentation output that other topics were matching your search:

simics> load-module NS16450_c
simics> help NS16450_c
[... NS16450_c class documentation ...]
     
Note that your request also matched other topics:
  module:NS16450_c

If you type help module:NS16450_c, the module documentation will be printed instead:

 
simics> help module:NS16450_c
[... NS16450_c module documentation ...]

You can use specifiers like module: or class: at any time. It will also allow the help command to provide you with better tab-completion, since only items in the selected category of documentation will be proposed. The following specifiers are available: object:, class:, command:, attribute:, interface:, module:, api:, hap: and category:.

Note: By default, help does not propose tab-completion for modules and API symbols, because they tend not to be the most searched for and would clutter the tab-completion propositions unnecessarily. You can get tab-completion for those by specifying module: or api: in front of what you are looking for.
The help-search command can search for keywords in the documentation provided by help. Type help-search keyword to get a list of all documentation topics matching this keyword. Its alias is apropos, named after the UNIX command-line utility which has similar behavior.

simics> help-search step
The text 'step' appears in the documentation
for the following items:
 
Command        <cycle>.cycle-break
Command        <cycle>.cycle-break-absolute
Command        <cycle>.print-time
Command        <cycle>.wait-for-cycle
Command        <cycle>.wait-for-time
[...]
Interface      step_info

simics> apropos step
[... yields the same output ...]

4.2 Tab Completion 4.4 Simics's Search Path