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. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|