Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First attempt at implementing gdb for Vanadis #2397

Open
wants to merge 1 commit into
base: devel
Choose a base branch
from

Conversation

jfustos
Copy link

@jfustos jfustos commented Sep 20, 2024

First attempt at implementing gdb for Vanadis

  • Testing has been limited
  • Only integer registers supported currently

This feature implements a GDB server within Vanadis. This feature is turned off and on by options in the sst python script. Breakpoints are detected and halted between the front and backends of the pipeline. Once a breakpoint is halted it first waits for the backend to clear, ensuring that it is not a speculative breakpoint. Once it is not speculative, the server takes over. A socket is opened that a client can communicate with a.k.a. the GDB client we all know and love. GDB request, like register dumps, are fulfilled by injecting instructions into the pipeline. Breakpoints are tracked within the GDB module. Execution is restored simply by letting the breaked instructions flow through until the address of the instruction changes. Testing has been done only on a few small programs. Each individual simulated core has its own GDB server, which needs to be connected to over a different port and from a different client, so you can single step two cores at the same time, but you will need 2 windows to do that.

@sst-autotester
Copy link
Contributor

Status Flag 'Pre-Test Inspection' - - This Pull Request Requires Inspection... The code must be inspected by a member of the Team before Testing/Merging
NO INSPECTION HAS BEEN PERFORMED ON THIS PULL REQUEST! - This PR must be inspected by setting label 'AT: PRE-TEST INSPECTED'.

@sst-autotester
Copy link
Contributor

Status Flag 'Pre-Test Inspection' - SUCCESS: The last commit to this Pull Request has been INSPECTED by label AT: PRE-TEST INSPECTED! Autotester is Removing Label; this inspection will remain valid until a new commit to source branch is performed.

@sst-autotester
Copy link
Contributor

Status Flag 'Pull Request AutoTester' - Testing Jenkins Projects:

Pull Request Auto Testing STARTING (click to expand)

Build Information

Test Name: SST__AutotestGen2_NewFW_sst-test_OMPI-4.1.4_PY3.6_sst-elements

  • Build Num: 1617
  • Status: STARTED

Build Information

Test Name: SST__AutotestGen2_NewFW_sst-test_OMPI-4.1.4_PY3.6_sst-elements_Make-Dist

  • Build Num: 1060
  • Status: STARTED

Build Information

Test Name: SST__AutotestGen2_NewFW_sst-test_OMPI-4.1.4_PY3.6_sst-elements_MT-2

  • Build Num: 1598
  • Status: STARTED

Build Information

Test Name: SST__AutotestGen2_NewFW_sst-test_OMPI-4.1.4_PY3.6_sst-elements_MR-2

  • Build Num: 1598
  • Status: STARTED

Build Information

Test Name: SST__AutotestGen2_NewFW_OSX-14-XC15-ARM2_OMPI-4.1.6_PY3.10_sst-elements

  • Build Num: 176
  • Status: STARTED

Using Repos:

Repo: ELEMENTS (jfustos/sst-elements-features)
  • Branch: add-gdb
  • SHA: 56c2f2a
  • Mode: TEST_REPO
Repo: SQE (sstsimulator/sst-sqe)
  • Branch: devel
  • SHA: 2574c98896598820227190149834172b962dc3fc
  • Mode: SUPPORT_REPO
Repo: CORE (sstsimulator/sst-core)
  • Branch: devel
  • SHA: 1cc35cc85ae17a2f9a38c669bf7f00d2ed7f9a93
  • Mode: SUPPORT_REPO
Repo: MACRO (sstsimulator/sst-macro)
  • Branch: devel
  • SHA: 50a62170b3681ea20cc2f56abd2eb3911053f1fc
  • Mode: SUPPORT_REPO

Pull Request Author: jfustos

@sst-autotester
Copy link
Contributor

Status Flag 'Pull Request AutoTester' - Jenkins Testing: 1 or more Jobs FAILED

Note: Testing will normally be attempted again in approx. 4 Hrs. If a change to the PR source branch occurs, the testing will be attempted again on next available autotester run.

Pull Request Auto Testing has FAILED (click to expand)

Job: SST__AutotestGen2_NewFW_sst-test_OMPI-4.1.4_PY3.6_sst-elements

  • Result: PASSED
  • Build #: 1617
  • URL: Jenkins server at https://sst-jenkins.sandia.gov/view/SST/job/SST__AutotestGen2_NewFW_sst-test_OMPI-4.1.4_PY3.6_sst-elements/1617/consoleFull

Job: SST__AutotestGen2_NewFW_sst-test_OMPI-4.1.4_PY3.6_sst-elements_Make-Dist

  • Result: FAILED
  • Build #: 1060
  • URL: Jenkins server at https://sst-jenkins.sandia.gov/view/SST/job/SST__AutotestGen2_NewFW_sst-test_OMPI-4.1.4_PY3.6_sst-elements_Make-Dist/1060/consoleFull
  • Job: - Status: FAILURE

Job: SST__AutotestGen2_NewFW_sst-test_OMPI-4.1.4_PY3.6_sst-elements_MT-2

  • Result: PASSED
  • Build #: 1598
  • URL: Jenkins server at https://sst-jenkins.sandia.gov/view/SST/job/SST__AutotestGen2_NewFW_sst-test_OMPI-4.1.4_PY3.6_sst-elements_MT-2/1598/consoleFull

Job: SST__AutotestGen2_NewFW_sst-test_OMPI-4.1.4_PY3.6_sst-elements_MR-2

  • Result: PASSED
  • Build #: 1598
  • URL: Jenkins server at https://sst-jenkins.sandia.gov/view/SST/job/SST__AutotestGen2_NewFW_sst-test_OMPI-4.1.4_PY3.6_sst-elements_MR-2/1598/consoleFull

Job: SST__AutotestGen2_NewFW_OSX-14-XC15-ARM2_OMPI-4.1.6_PY3.10_sst-elements

  • Result: FAILED
  • Build #: 176
  • URL: Jenkins server at https://sst-jenkins.sandia.gov/view/SST/job/SST__AutotestGen2_NewFW_OSX-14-XC15-ARM2_OMPI-4.1.6_PY3.10_sst-elements/176/consoleFull
  • Job: - Status: FAILURE

@hughes-c hughes-c added the AT: WIP Mark PR as a Work in Progress (No Autotesting Performed) label Oct 3, 2024
@hughes-c
Copy link
Member

hughes-c commented Oct 3, 2024

@jfustos These are the errors:
osx

./decoder/vriscv64gdb.h:1129:51: error: use of undeclared identifier 'SOCK_CLOEXEC'
         listen_fd = socket(AF_INET, SOCK_STREAM | SOCK_CLOEXEC, IPPROTO_TCP);

makedist

decoder/vriscv64decoder.cc:19:10: fatal error: decoder/vriscv64gdb.h: No such file or directory
 #include "decoder/vriscv64gdb.h"
          ^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[5]: *** [Makefile:1327: decoder/vriscv64decoder.lo] Error 1
make[5]: *** Waiting for unfinished jobs....
In file included from vanadis.cc:19:
inst/vinstall.h:88:10: fatal error: inst/vgetregcallable.h: No such file or directory
 #include "inst/vgetregcallable.h"
          ^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[5]: *** [Makefile:1327: vanadis.lo] Error 1
In file included from ./decoder/vmipsdecoder.h:22,
                 from decoder/vmipsdecoder.cc:19:
./inst/vinstall.h:88:10: fatal error: inst/vgetregcallable.h: No such file or directory
 #include "inst/vgetregcallable.h"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
AT: WIP Mark PR as a Work in Progress (No Autotesting Performed) Enhancement SST-vanadis
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants