Run lte-softmodem via gdb and vscode
See cmake_targets/gdb.txt for notes
This commit is contained in:
Vendored
+9
-5
@@ -4,18 +4,22 @@
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
|
||||
{
|
||||
"name": "(gdb) Launch",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "enter program name, for example ${workspaceFolder}/a.exe",
|
||||
"args": [],
|
||||
"program": "${workspaceFolder}/cmake_targets/ran_build/build/lte-softmodem",
|
||||
"args": [
|
||||
"-O", "../ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf",
|
||||
"--noS1"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${workspaceFolder}",
|
||||
"cwd": "${workspaceFolder}/cmake_targets",
|
||||
"environment": [],
|
||||
"externalConsole": false,
|
||||
"MIMode": "gdb",
|
||||
"miDebuggerPath": "/path/to/gdb",
|
||||
"miDebuggerPath": "${workspaceFolder}/cmake_targets/sudo-gdb",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
@@ -25,4 +29,4 @@
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
cd "$(dirname "$0")/.." || exit
|
||||
source oaienv
|
||||
cd cmake_targets || exit
|
||||
|
||||
cmd=(
|
||||
./ran_build/build/lte-softmodem
|
||||
-O ../ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf
|
||||
--noS1
|
||||
"$@"
|
||||
)
|
||||
|
||||
exec sudo -E gdb "$@" --args "${cmd[@]}"
|
||||
@@ -0,0 +1,54 @@
|
||||
Make sure you've built with debug info:
|
||||
|
||||
cd ~/openairinterface5g # or wherever
|
||||
source oaienv
|
||||
cd cmake_targets
|
||||
./build_oai --UE --eNB --verbose-compile --run-with-gdb RelWithDebInfo
|
||||
make -C ran_build/build -j4 lte-softmodem lte-uesoftmodem
|
||||
|
||||
Verify the build was done correctly:
|
||||
|
||||
$ ./gdb-helper
|
||||
...
|
||||
Reading symbols from ./ran_build/build/lte-softmodem...done.
|
||||
(gdb) b main
|
||||
Breakpoint 1 at 0x59f110: file /local/episys/openairinterface5g/targets/RT/USER/lte-softmodem.c, line 516.
|
||||
(gdb) run
|
||||
Starting program: /local/episys/openairinterface5g/cmake_targets/ran_build/build/lte-softmodem -O ../ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf --noS1
|
||||
[Thread debugging using libthread_db enabled]
|
||||
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
|
||||
|
||||
Breakpoint 1, main (argc=4, argv=0x7fffffffe058) at /local/episys/openairinterface5g/targets/RT/USER/lte-softmodem.c:516
|
||||
516 {
|
||||
(gdb) list
|
||||
511 pthread_mutex_unlock(&nfapi_sync_mutex);
|
||||
512 printf( "NFAPI: got sync (%s)\n", thread_name);
|
||||
513 }
|
||||
514
|
||||
515 int main ( int argc, char **argv )
|
||||
516 {
|
||||
517 struct sched_param param =
|
||||
518 {
|
||||
519 .sched_priority = 79
|
||||
520 };
|
||||
(gdb) n
|
||||
521 if (sched_setscheduler( 0, SCHED_RR, ¶m ) == -1 )
|
||||
(gdb) quit
|
||||
A debugging session is active.
|
||||
|
||||
Inferior 1 [process 19964] will be killed.
|
||||
|
||||
Quit anyway? (y or n) y
|
||||
$
|
||||
|
||||
If gdb says "no debugging symbols found" then clean your workspace and re-do
|
||||
the build as above.
|
||||
|
||||
(gdb) b main
|
||||
|
||||
Using Vscode
|
||||
|
||||
cd ~/openairinterface5g # or wherever
|
||||
code . targets/RT/USER/lte-softmodem.c .vscode/launch.json
|
||||
|
||||
See launch.json for details about how lte-softmodem is launched.
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
# Helper script for Vscode. See .vscode/launch.json "miDebuggerPath"
|
||||
cd "$(dirname "$0")/.." || exit
|
||||
source oaienv
|
||||
cd cmake_targets || exit
|
||||
exec sudo -E gdb "$@"
|
||||
Reference in New Issue
Block a user