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
  • #2681
Closed
Open
Issue created Nov 01, 2017 by Derek Bruening@derekbrueningContributor

ASSERT: aarch64 instr_encode_arch() fails to honor check_reachable param

This was raised here: https://groups.google.com/forum/#!topic/DynamoRIO-Users/lqxQpY6GllM

Pasting from there:

This looks like a bug in the aarch64 encoder when encoding solely to print, based on looking at your log file. That's why it's debug-only. I think the bug is that the aarch64 encoder ignores the parameter "check_reachable" which is set to false for disassembly. Branch reachability is supposed to be ignored since this is not a real encoding but just a disassembly.

It's not clear why A) it thinks it needs to encode at all, since it's an L3 instr; and B) why this doesn't happen on the prior 2 prints: presumably b/c they realize they don't need to encode. Probably the final branch is tweaked before the "before mangling" print or sthg and it shows up as needing encoding despite printing L3.

Details from the log:

before instrumentation:
TAG  0x0000007f9bd10fc0
 +0    L3                      910003e0   add    %sp $0x0000 lsl $0x00 -> %x0
 +4    L3                      94000cac   bl     $0x0000007f9bd14274
END 0x0000007f9bd10fc0

CLEANCALL: insert clean call to 0x000000000003b690

after instrumentation:
TAG  0x0000007f9bd10fc0
... 
 +436  L3                      910003e0   add    %sp $0x0000 lsl $0x00 -> %x0
 +440  L3                      94000cac   bl     $0x0000007f9bd14274
END 0x0000007f9bd10fc0

bb ilist before mangling:
TAG  0x0000007f9bd10fc0
 ...
 +436  L3                      910003e0   add    %sp $0x0000 lsl $0x00 -> %x0
 +440  L3                      94000cac   bl     $0x0000007f9bd14274
SYSLOG_ERROR: Application ... (15543).  Internal Error: DynamoRIO debug check failure: Not implemented @.../core/arch/aarch64/codec.c:2603 (0)
Assignee
Assign to
Time tracking