Debugger bugfix
John Swensen
jpswensen at comcast.net
Mon Nov 24 06:08:51 CST 2008
On Nov 24, 2008, at 5:26 AM, David Bateman wrote:
> John Swensen wrote:
>> Attached is a changeset to fix a bug I encountered in the
>> debugger. The problem was in the
>> bp_table::do_get_breakpoint_list(...) function where there is a
>> loop over an STL iterator which calls out_of_date_check() in each
>> iteration. The problem occurred because out_of_date_check(), in
>> turn, will call remove_all_breakpoints_in_file() when the file has
>> changed, which modifies the object STL map being iterated over.
>>
>> So I added another set of loops to take care of processing out-of-
>> date breakpoints before building up the list of breakpoints for
>> dbstatus().
>>
>> John Swensen
>>
>>
> John,
>
> This patch looks right to me, but can you give an example of Octave
> code that causes the bug to manifest? Is this related to the thread
>
> http://www-old.cae.wisc.edu/pipermail/octave-maintainers/2008-September/008657.html
>
> and continued in
>
> http://www-old.cae.wisc.edu/pipermail/octave-maintainers/2008-October/008831.html
>
> Cheers
> David
>
> --
> David Bateman
> David.Bateman at motorola.com
> Motorola Labs - Paris +33 1 69 35 48 04 (Ph)
> Parc Les Algorithmes, Commune de St Aubin +33 6 72 01 06 33 (Mob)
> 91193 Gif-Sur-Yvette FRANCE +33 1 69 35 77 01 (Fax)
> The information contained in this communication has been classified
> as:
> [x] General Business Information [ ] Motorola Internal Use Only [ ]
> Motorola Confidential Proprietary
>
I don't think this bug had anything to do with those threads. This
was much more basic. Try the following:
1) Add a breakpoint to a function
2) Call dbstatus
3) Modify the file in which the breakpoint was set (e.g. add and empty
new line)
4) Call dbstatus and watch octave crash
I think the behavior is unique to dbstatus because it was modifying
the STL::map while in the middle of iterating through it, because of
the out of date check on the file.
John Swensen
More information about the Octave-maintainers
mailing list