Closed GitMensch closed 9 months ago
Did you profile contains any hits to the executable binary itself? I've got only hits to libc.so and ld-linux.so, but after increasing frequency and disabling software events managed to get hit to the executable itself.
I'm afraid the workload we're profiling is just too small to collect any meaningful data.
Did you profile contains any hits to the executable binary itself?
Yes, but not when I retried that.
I've got only hits to libc.so and ld-linux.so, but after increasing frequency and disabling software events managed to get hit to the executable itself.
Seen that on re-testing. But even with a higher frequency and no software event and binaries in the profile I'm back to the original problem: objdump is called with address that doesn't exist because pgconvert put that into the cachegrind profile. Do you see the same?
Nope, everything looks to be working fine for me. Can you provide me with your binary, pgdata and grind files?
Well, looks to be working fine for me:
Does that include the machine code for all functions in pginfo_dbg? This is where the error is we track under this issue is most visible.
Ok, got it finally. Your executable is PIE, this is not handled properly in pgconvert.
Is this issue likely to stay open or can you have a look at this in the next weeks? In the former case we should update the README, possibly linking this issue to document this regression.
This should be fixable :)
Ok, I was wrong: non-PIE executables have wrong instructions dump as well.
Should be fixed by 0a8fd1c819973204093fd980d609e997735763f7, please test.
I didn't checked that specific commit but do so that current master fixed that.
I've just cloned the repo and run
make check
which worked fine, thenmake open-checkfiles
.The result looks reasonable so far but opening on KCachegrind shows nearly an empty source and most checking of machine code prompts an error, which is rooted in the objdump calls that use the address from the profile - and those don't exist in the binary.
If I run those manually I get.
run without the address:
Any idea what's going on here?