--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