grist caused bfd to be compiled using gdb's config.h. This made it think
Haiku had no fcntl() and thus assumed shared objects were opened r/w instead
of read-only, which made it write back data when closing the files. So this
fixes the problem that gdb damages the shared objects it had loaded.
Basically two questions remain:
1) Why does BFD write something into the files that makes them invalid?
2) Why was it possible to write something into the read-only opened files?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13791 a95241bf-73f2-0310-859d-f6bbb57e9c96
Passes all unit tests now and works on Haiku too. Speed is not yet optimized and Message2.cpp is still not cleaned up.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13785 a95241bf-73f2-0310-859d-f6bbb57e9c96
It's currently really broken so don't even try to test it, but you can still review it ;-).
Message2.cpp is not yet cleaned - more to come...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13784 a95241bf-73f2-0310-859d-f6bbb57e9c96
CDDB data is written in R5 format with the exception of CD:key (still figuring out what to do about that)
Fixed some update notification problems with changing CDs
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13777 a95241bf-73f2-0310-859d-f6bbb57e9c96
use it. It is not (yet) included in the build and won't break anything.
As we now only have thin wrappers around the *Data() functions, the templatized implementation does
not make much sense anymore and wouldn't work either.
I started this new implementation to be as clean as possible. Instead of using a std::map and
BDataBuffer it uses BList and BMallocIO. It passes the unit tests and it even seems to be a bit quicker
in some tests (but not as quick as the R5 one).
Flattening/Unflattening does not work yet so you can't use it under Haiku right now. It's completely work in progress (I started it just 4 hours ago).
Shout if you see something completely broken, reviews welcome.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13776 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Print the debugger message in case the debugged team called debugger(),
and the description of an occurred exception respectively.
* Properly keep gdb's internal thread list up to date. This fixes the
problem that an attached debugger always resumed all threads of the
debugged team.
* A bit of cleanup of the attaching code.
Discovered an ugly bug: When invoking gdb with an executable -- regardless
of whether attaching gdb to a running process or just starting a debugger
session with the executable -- the executable is modified. I tested with
"crashing_app" and in the second debug session gdb fails to read the debug
info from the file and encounters a weird error when closing the file:
"No space left on device." I have the suspicion that this is another bug
in Axel's VM/file cache pet. :-P
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13775 a95241bf-73f2-0310-859d-f6bbb57e9c96
with the thread lock held, which might have caused a panic later on, if there
was another thread waiting for the death stack semaphore.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13769 a95241bf-73f2-0310-859d-f6bbb57e9c96
into account when remapping the pages read-only; it could have overwritten valid
page mappings this way. This was also the reason for the Terminal to crash - it
does now work as it should, although some keys don't work (like tab completion)).
vm_copy_area() no longer always sets B_KERNEL_WRITE_AREA if no kernel protection
was specified, but mirrors the userland protection (for example, the x86 MMU is
not able to have a page writable in kernel but not in userland). This caused
some areas to be read/write when read-only would have been enough.
vm_copy_area() now panics when vm_copy_on_write_area() fails - that's of course
no real solution, but it's bettern than letting it silently fail.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13768 a95241bf-73f2-0310-859d-f6bbb57e9c96
Lookup now handles inexact matches
CDAudioDevice now detects all available CD drives
Fixed a minor bug in updating the track list when changing CDs
CDDB content files are now stored in R5's location - /boot/home/cd
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13764 a95241bf-73f2-0310-859d-f6bbb57e9c96
implementations (e.g. SVR4) don't do that, but I don't see how it could
work otherwise. Maybe other systems place the executable's code exactly
where specified in the executable and hence noone ever noticed...
Anyway, this makes stack traces (and probably other things that were broken
before) work with an attached gdb.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13762 a95241bf-73f2-0310-859d-f6bbb57e9c96
Should be better moved into resources next time. Will see...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13758 a95241bf-73f2-0310-859d-f6bbb57e9c96
"look-through" area in Terminal, and probably ShowImage as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13743 a95241bf-73f2-0310-859d-f6bbb57e9c96