|
From: Alex B. <ker...@be...> - 2005-11-02 11:07:02
|
Hi, I'm trying to run Valgrind across an x86 app that uses the modify_ldt syscall which seems to get in the way of Valgrind. I has a look though the svn sources and I can see the test case for modify_ldt is commented out and has a note that it is used by Valgrind itself. Running outside Valgrind gives: $: ./mytestprog ldt_entry.entry_number = 125 ldt_entry.base_addr = 3821ec00 ldt_entry.limit = 9944 ldt_entry.seg_32bit = 1 ldt_entry.contents = 0 ldt_entry.read_exec_only = 0 ldt_entry.limit_in_pages = 0 ldt_entry.seg_not_present= 0 ldt_entry.useable = 1 modify_ldt = 0 setFS(1007) libc_nbtest: starting <snip> Whereas under Valgrind: $ /usr/local/bin/valgrind --tool=memcheck ./mytestprog ==9588== Memcheck, a memory error detector. ==9588== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al. ==9588== Using LibVEX rev 1426, a library for dynamic binary translation. ==9588== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP. ==9588== Using valgrind-3.1.SVN, a dynamic binary instrumentation framework. ==9588== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al. ==9588== For more details, rerun with: -v ==9588== ldt_entry.entry_number = 125 ldt_entry.base_addr = 427ae40 ldt_entry.limit = 9944 ldt_entry.seg_32bit = 1 ldt_entry.contents = 0 ldt_entry.read_exec_only = 0 ldt_entry.limit_in_pages = 0 ldt_entry.seg_not_present= 0 ldt_entry.useable = 1 modify_ldt = -1 FATAL ERROR: User segment selector installation failed. Are user selectors enabled? I'm assuming the move in base_addr is because memory has been moved about a bit. I've tried with both the formal 3.0.1 and the SVN sources. Is my attempt to Valgrind this app doomed because of use of the modify_ldt? -- Alex, homepage: http://www.bennee.com/~alex/ You might have mail |