DynamoRIO / DynamoRIO/dynamorio

Spurious usage error on NULL translation field for app instr

Open
#808 1 comment 0 reactions 0 assignees View on GitHub
Bug-Assert Migrated Priority-Low
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 18h
Merged PRs (30d)
30

Description

_From [rnk@google.com](https://code.google.com/u/rnk@google.com/) on June 14, 2012 15:34:16_

I'm trying to run browser_tests and I'm getting something like this:

[rnk@wittenberg standalone_browser_test]$ ~/disk/dynamorio/build/bin64/drrun -debug -client ~/disk/dynamorio/build/api/samples/bin/libempty.so 0 '' ./browser_tests --gtest_filter="AutofillTest.BasicFormFill"
....

1 test run
1 test failed (0 ignored)
Failing tests:
AutofillTest.BasicFormFill

When I symbolize the trace I get this:

0x00000000409d6930 0x0000000071109df5 in external_error /home/rnk/disk/dynamorio/core/utils.c:212
0x00000000409d6990 0x000000007128c0af in check_ilist_translations /home/rnk/disk/dynamorio/core/x86/instrument.c:1291
0x00000000409d69c0 0x000000007128c5f1 in instrument_basic_block /home/rnk/disk/dynamorio/core/x86/instrument.c:1359
0x00000000409d6a60 0x000000007123d692 in client_process_bb /home/rnk/disk/dynamorio/core/x86/interp.c:2395
0x00000000409d6b20 0x00000000712413fb in build_bb_ilist /home/rnk/disk/dynamorio/core/x86/interp.c:3311
0x00000000409d6d60 0x0000000071245d5f in build_basic_block_fragment /home/rnk/disk/dynamorio/core/x86/interp.c:4246
0x00000000409d6f10 0x00000000710f4605 in dispatch /home/rnk/disk/dynamorio/core/dispatch.c:186
0x00000000409d6ff0 0x000000004096ad4d in ?? ??:0
0x00007ffff42d0830 0x0000000071086175 in dr_app_setup_and_start /home/rnk/disk/dynamorio/core/dynamo.c:2499
0x00007ffff42d0850 0x0000000003516ef4>

I can reproduce this using any client that has a bb hook, but only on my current build of browser_tests. I have a standalone zip of this build in my internal Google filer at /home/rnk/standalone_browser_tests.zip. You can unzip it and run some small test (I use AutofillTest.BasicFormFill).

The instructions in question look like normal app instrs, but I can't tell why the translation field is NULL. Please try reproducing this problem with trunk DR using the standalone zip.

_Original issue: http://code.google.com/p/dynamorio/issues/detail?id=808_

Contributor guide

Open the contributing guide

Research direction

Start with core/x86/instrument.c, especially check_ilist_translations and instrument_basic_block, then trace the reported path through core/x86/interp.c. Reproduce with drrun, a client with a basic-block hook, and browser_tests filtered to AutofillTest.BasicFormFill using the standalone build; done means the test no longer reports a NULL translation field.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.