| Summary of difference points for GDB | |||||||||
| The ported version of GDB for VE provides the functionality of source level debugging and symbolic debugging of a VE | |||||||||
| program written in C, C++ or Fortran language. You can insert a break point specifying a source line or a symbol of a | |||||||||
| function, start a VE program, attach GDB to an already running VE process, step through a VE program, examine a variable | |||||||||
| specifying a symbol, examine a scalar or vector register, change a variable or a register, and invoke a function of a VE | |||||||||
| program. You can also analyze a core file of a VE program. | |||||||||
| There are the following difference points between the ported version of GDB for VE and GDB for Linux: | |||||||||
| 1. | GDB internally executes "ve_exec" command with "--traceme" option in order to execute VE program. | ||||||||
| 2. | VE_NODE_NUMBER environment variable can be used to specify VE node to execute VE program. | ||||||||
| If the environment variable is not set, VE program is executed on VE node 0. | |||||||||
| 3. | Only local debugging is supported. Remote debugging using GDB server or GDB stub is not supported. | ||||||||
| 4. | The directory where separate debug symbols are searched for is "/opt/nec/ve/lib/debug". | ||||||||
| 5. | GDB can not deals with thread-local variables correctly, because DWARF information about them is invalid. | ||||||||
| 6. | The following commands don't show information for VE side but show for VH(Vector Host) side using procfs of it. | ||||||||
| info proc | |||||||||
| info proc all | |||||||||
| info proc cmdline | |||||||||
| info proc cwd | |||||||||
| info proc exe | |||||||||
| info proc mappings | |||||||||
| info proc stat | |||||||||
| info proc status | |||||||||
| 7. | "info auxv" command is available only in debugging with core file. | ||||||||
| 8. | GDB and VEOS does not handle invocation of execve() system call from a VE program properly. | ||||||||
| When a VE program invokes execve() system call, GDB detects SIGTRAP , or can not find the process or the thread | |||||||||
| , and then it does not reload a new program. | |||||||||
| In this case, "quit" command need to be executed to terminate GDB. | |||||||||
| The debugged process will be killed when GDB terminates, if it have been executed from GDB . | |||||||||
| 9. | "call" command can be used to invoke a function of a VE program. But, if stack area beyond page boundary | ||||||||
| is required, "call" command fails due to access error. | |||||||||
| 10. | VE specific commands are added. | ||||||||
| See "VE specific commands" sheet. | |||||||||
| 11. | Some of commands are not supported. | ||||||||
| See "GDB commands" sheet and "MI commands". | |||||||||
| 12. | Instruction Counter (IC) will be far from the address which causes a HW exception when the program is | ||||||||
| stopped by the HW exception. | |||||||||
| "advance off" mode can be set in order to check the precise state when HW exception occurs. | |||||||||
| In this mode, instruction execution is held until the preceding instructions have completed. | |||||||||
| As the result, GDB shows the precise state when HW exception occurs. | |||||||||
| See "How to set advance off mode" sheet. | |||||||||