Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • D dynamorio
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,467
    • Issues 1,467
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 44
    • Merge requests 44
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • DynamoRIO
  • dynamorio
  • Issues
  • #4231
Closed
Open
Issue created Mar 27, 2020 by Derek Bruening@derekbrueningContributor

drwrap-test failed on Appveyor 32-bit: 2nd library load missing some callbacks

The drwrap-test failed once in PR #4230 on 32-bit Appveyor in a strange way. On the 2nd library load, most of the wrap callbacks were not called. I can't reproduce this locally: ran 500x. On Appveyor it did not reproduce.

https://ci.appveyor.com/project/DynamoRIO/dynamorio/builds/31767039

thread.appdll process init
  <pre-level0>
in level0 42
  <pre-level1>
in level1 42 1111
  <pre-makes_tailcall>
  <pre-level2>
in level2 1153
  <post-level2>
  <post-makes_tailcall>
  <post-level1>
level1 returned -4
  <post-level0>
level0 returned 42
  <pre-skipme>
skipme returned 7 and x=3
  <pre-repeat#1>
in repeatme with arg 3
  <post-repeat#1>
  <pre-repeat#2>
in repeatme with arg 2
  <post-repeat#2>
repeatme returned 2
replaceme returned 0 and x=6
replaceme2 returned 1 and x=999
replace_callsite returned 2 and x=777
  <pre-preonly>
in preonly
in postonly
  <post-postonly>
in skipme
in postonly
  <pre-direct1>
  <post-direct1>
  <pre-direct2>
  <pre-direct1>
  <post-direct1>
  <post-direct2>
  <pre-direct1>
in runlots 1024
  <pre-long0>
  <pre-long1>
long0 A
  <pre-long2>
  <pre-long3>
long1 A
  <pre-long4>
  <pre-long5>
long2 A
  <pre-long6>
  <pre-long7>
long3 A
  <post-long7 abnormal>
  <post-long6 abnormal>
  <post-long5 abnormal>
  <post-long4 abnormal>
  <post-long3 abnormal>
  <post-long2 abnormal>
  <post-long1 abnormal>
  <post-long0 abnormal>
longdone
  <pre-called_indirectly>
  <pre-called_indirectly_subcall>
called_indirectly_subcall 43
  <post-called_indirectly_subcall>
called_indirectly 42 => 44
  <post-called_indirectly>
  <pre-tailcall_test2>
print_from_asm 1
  <pre-tailcall_tail>
print_from_asm 7
  <post-tailcall_tail>
  <post-tailcall_test2>
loaded library
thread.appdll process init
in level0 37
in level1 37 74
in level2 111
level1 returned 37
level0 returned 37
in skipme
skipme returned -1 and x=4
in repeatme with arg 4
repeatme returned 4
replaceme returned 0 and x=6
replaceme2 returned 1 and x=999
replace_callsite returned 2 and x=777
in preonly
in postonly
in skipme
in postonly
  <pre-direct1>
  <post-direct1>
  <pre-direct2>
  <pre-direct1>
  <post-direct1>
  <post-direct2>
  <pre-direct1>
in runlots 1024
  <pre-long0>
long0 A
  <pre-long1>
long1 A
  <pre-long2>
long2 A
  <pre-long3>
long3 A
  <post-long3 abnormal>
  <post-long2 abnormal>
  <post-long1 abnormal>
  <post-long0 abnormal>
longdone
called_indirectly_subcall 43
called_indirectly 42 => 44
print_from_asm 1
print_from_asm 7
loaded library
thank you for testing the client interface
all done
Assignee
Assign to
Time tracking