diff options
author | Marc Aldorasi <marc@groundctl.com> | 2022-01-14 19:28:40 (GMT) |
---|---|---|
committer | Marc Aldorasi <marc@groundctl.com> | 2022-01-14 21:41:27 (GMT) |
commit | 4b53f1ec060f40111e4e68d5d21b73ceeb9da9a0 (patch) | |
tree | 3b440f639cf2ec10b1d897b382aa4a9e80c26a57 | |
parent | ab7dcd4bf8d756e07b49e94fc3de215a3ddcb32c (diff) | |
download | cv2pdb-4b53f1ec060f40111e4e68d5d21b73ceeb9da9a0.zip cv2pdb-4b53f1ec060f40111e4e68d5d21b73ceeb9da9a0.tar.gz cv2pdb-4b53f1ec060f40111e4e68d5d21b73ceeb9da9a0.tar.bz2 |
Added test for S_SEPCODE entries
-rw-r--r-- | .github/workflows/build-and-test.yml | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index ee2b5c4..00a03ec 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -61,3 +61,24 @@ jobs: curl -Lo cvdump.exe https://raw.githubusercontent.com/microsoft/microsoft-pdb/HEAD/cvdump/cvdump.exe && ./cvdump.exe world.pdb >world.cvdump && grep '^S_PUB32: .*, Flags: 00000000, main$' world.cvdump + - name: verify split functions + shell: bash + run: | + set -x && + cat >split.c <<-\EOF && + __attribute__((cold,noinline)) void cold() { volatile int i=0; } + __attribute__((dllexport)) void split_func(int i) + { + if (i) + cold(); + } + EOF + + gcc -g -O2 -shared -o split-dwarf.dll split.c && + bin/${{env.BUILD_CONFIGURATION}}*/cv2pdb.exe split-dwarf.dll split-cv.dll && + + ls -l split-dwarf* split-cv* && + + curl -Lo cvdump.exe https://raw.githubusercontent.com/microsoft/microsoft-pdb/HEAD/cvdump/cvdump.exe && + ./cvdump.exe split-cv.pdb > split-cv.dump && + awk '$2 == "S_GPROC32:" && $NF == "split_func" { scope=gensub(/,/,"",1,$3); } $2 == "S_SEPCODE:" { getline; if ($4 == scope) found=1; } END {exit !found; }' split-cv.dump |