--with-blas/lapack being ignored
Ben Abbott
bpabbott at mac.com
Fri Dec 7 15:27:27 CST 2007
On Friday, December 07, 2007, at 04:15PM, "Ben Abbott" <bpabbott at mac.com> wrote:
>
>On Friday, December 07, 2007, at 10:57AM, "John W. Eaton" <jwe at bevo.che.wisc.edu> wrote:
>>On 6-Dec-2007, Ben Abbott wrote:
>>
>>| I've run octave in ddd (I modified run_octave to use ddd in addition
>>| gdb).
>>|
>>| As expected octave crashes on the command strptime('09/13','%m/%d')
>>|
>>| Program recieved signal EXC_BAD_ACCESS, Could not access memory.
>>| Reason: KERN_PROTECTION_FAILURE at address: 0x00000000
>>| 0x9110f590 in strlen ()
>>| No source file named address.
>>|
>>| A dialog is also produced by ddd. Which says
>>|
>>| /Users/bpabbott/Desktop/octave/address: No such file or directory
>>|
>>| The crash occurs when line 307 of oct-time.cc is exectuted.
>>|
>>| 306 #if defined (HAVE_STRUCT_TM_TM_ZONE)
>>| >> 307 tm_zone = t->tm_zone;
>>| 308 #elif defined (HAVE_TZNAME)
>>|
>>| Just prior to the crash, the date and time variables were set to
>>|
>>| tm_sec = 0
>>| tm_min = 0
>>| tm_hour = 0
>>| tm_mday = 13
>>| tm_mon = 8
>>| tm_year = 0
>>| tm_wday = 0
>>| tm_yday = 0
>>| tm_isdst = 0
>>
>>Are these the values of the elements of the octave_base_tm structure,
>>or the values in the struct tm structure? What is in t->tm_zone
>>above?
>>
>>If it crashes on this line, then how is strlen involved?
>>
>
>John,
>
>Below is the partion of code in oct-time.cc that I had looked at in the debugger. Using ddd, I had placed a break point at line 307 (the same like that crashes octave).
>
> 290 void
> 291 octave_base_tm::init (void *p)
> 292 {
> 293 struct tm *t = static_cast<struct tm*> (p);
> 294
> 295 tm_sec = t->tm_sec;
> 296 tm_min = t->tm_min;
> 297 tm_hour = t->tm_hour;
> 298 tm_mday = t->tm_mday;
> 299 tm_mon = t->tm_mon;
> 300 tm_year = t->tm_year;
> 301 tm_wday = t->tm_wday;
> 302 tm_yday = t->tm_yday;
> 303 tm_isdst = t->tm_isdst;
> 304
> 305 #if defined (HAVE_STRUCT_TM_TM_ZONE)
>>> 307 tm_zone = t->tm_zone;
> 308 #elif defined (HAVE_TZNAME)
> 309 if (t->tm_isdst == 0 || t->tm_isdst == 1)
> 310 tm_zone = tzname[t->tm_isdst];
> 311 #endif
> 312 }
>
>>From inside ddd, I hovered the mouse over lines 295-303 in order to obtain the results below.
>
> tm_sec = 0
> tm_min = 0
> tm_hour = 0
> tm_mday = 13
> tm_mon = 8
> tm_year = 0
> tm_wday = 0
> tm_yday = 0
> tm_isdst = 0
>
>Regarding t->tm_zone, unfortunately I'm not able to run octave under debug at the moment. I hope to get back to you later tonight.
>
forgive me if this is less than useful, but I bailed on ddd and decided to run gdb instead. Once I've stopped on line 307 ...
(gdb) display t->tm_zone
2: t->tm_zone = 0x0
(gdb) display t
3: t = (tm *) 0xbfffa4e8
(gdb) display tm_zone
4: this->tm_zone = {
static npos = 4294967295,
_M_dataplus = {
<std::allocator<char>> = {
<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
members of std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Alloc_hider:
_M_p = 0x26dd08c "unknown"
}
}
If what you're looking for isn't there, please let me know (one day I'll have to invest some time learning some c++).
Ben
More information about the Bug-octave
mailing list