VM Maker: Cog-eem.340.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: Cog-eem.340.mcz

commits-2
 
Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.340.mcz

==================== Summary ====================

Name: Cog-eem.340
Author: eem
Time: 27 April 2017, 1:04:43.977266 pm
UUID: 2455965e-28fe-46f4-a9e6-9ed84870ad1f
Ancestors: Cog-eem.339

includesSubString: is deprecated.

=============== Diff against Cog-eem.339 ===============

Item was changed:
  ----- Method: CrashReportsMailer>>addReportFor: (in category 'reporting') -----
  addReportFor: lines
  rs resetContents;
  tab;
  nextPutAll: ((lines detect: [:l| l beginsWith: 'Subject:']) ifNotNil:
  [:l| l allButFirst: (l indexOfSubCollection: ' Teleplace Bug')]);
  crtab: 2;
  nextPutAll: (lines detect: [:l| l beginsWith: 'Date:']);
  cr.
+ ((lines anySatisfy: [:l| (l beginsWith: 'OS Version') and: [l includesSubstring: 'Mac OS X']])
- ((lines anySatisfy: [:l| (l beginsWith: 'OS Version') and: [l includesSubString: 'Mac OS X']])
  ifTrue: [self reportForMacOS: lines]
  ifFalse: [(lines anySatisfy: [:l| l beginsWith: 'Module:'])
  ifTrue: [self reportForOldWin32: lines]
  ifFalse: [self reportForNewWin32: lines]]) ifNotNil:
  [:cause|
  (causes at: cause ifAbsentPut: [OrderedCollection new])
  addLast: rs contents]!

Item was changed:
  ----- Method: CrashReportsMailer>>ifCrashReport:do: (in category 'parsing') -----
  ifCrashReport: fileName do: aBlock
  "Answer the evaluation of aBlock with the lines for fileName if it is a crash report, or nil if not."
  | file lines subject |
  file := mailDirectory oldFileNamed: fileName.
  lines := [file contentsOfEntireFile]
  on: Error
  do: [:ex|
  file close.
  Transcript nextPutAll: fileName; nextPutAll: ': '; nextPutAll: ex messageText; flush.
  ^nil].
  lines := self breakIntoLines: lines.
  subject := lines detect: [:l| l beginsWith: 'Subject:'] ifNone: [^nil].
+ (subject includesSubstring: 'Teleplace Bug Report: ') ifFalse: [^nil].
- (subject includesSubString: 'Teleplace Bug Report: ') ifFalse: [^nil].
  #('@qwaq.com' '@teleplace.com' '@chonkaa.com' '[hidden email]' '[hidden email]') do:
  [:localEmail| (subject includesSubstring: localEmail caseSensitive: false) ifTrue: [^nil]].
  (lines anySatisfy:
  [:l|
+ ((l beginsWith: 'OS Version') and: [l includesSubstring: 'Mac OS X'])
- ((l beginsWith: 'OS Version') and: [l includesSubString: 'Mac OS X'])
  or: [l beginsWith: 'Operating System:']]) ifFalse: [^nil].
  ^aBlock value: lines!

Item was changed:
  ----- Method: CrashReportsMailer>>reportForMacOS: (in category 'reporting') -----
  reportForMacOS: lines
  | thread dateAndTime cStackTop cstIdx |
 
  thread := Integer readFrom: ((lines detect: [:l| l beginsWith: 'Crashed Thread: ']) allButFirst: 15) readStream skipSeparators.
  thread := 'Thread ', thread printString, ' Crashed'.
  lines withIndexDo:
  [:l :i|
  (l beginsWith: 'Date/Time:') ifTrue:
  [dateAndTime := l allButFirst: 11].
  ((l beginsWith: thread)
  and: [i < lines size]) ifTrue:
  [cStackTop := lines at: (cstIdx := i + 1)]].
  [cstIdx <= lines size
  and: [(lines at: cstIdx) notEmpty]] whileTrue:
+ [(((lines at: cstIdx) includesSubstring: ' _sigtramp ')
+ and: [((lines at: cstIdx + 1) includesSubstring: ' ??? ')
+ and: [((lines at: cstIdx + 1) includesSubstring: '0xffffffff 0 + 4294967295')]]) ifTrue:
- [(((lines at: cstIdx) includesSubString: ' _sigtramp ')
- and: [((lines at: cstIdx + 1) includesSubString: ' ??? ')
- and: [((lines at: cstIdx + 1) includesSubString: '0xffffffff 0 + 4294967295')]]) ifTrue:
  [cStackTop := lines at: cstIdx + 2.
  cstIdx := lines size].
  cstIdx := cstIdx + 1].
  dateAndTime := self macOSDateFor: dateAndTime.
  (dateAndTime between: startDate and: endDate) ifFalse:
  [^nil].
  ^'Mac:', (cStackTop allButFirst: (cStackTop indexOf: Character space))!

Item was changed:
  ----- Method: GdbARMAlien>>disassembleFrom:to:in:for:labels:on: (in category 'disassembly') -----
  disassembleFrom: startAddress to: endAddress in: memory for: aSymbolManager "<Cogit>" labels: labelDictionary on: aStream
  | address |
  address := startAddress.
  [address <= endAddress] whileTrue:
  [[:sizeArg :stringArg| | size string index offset |
  size := sizeArg.
  string := stringArg.
  (aSymbolManager labelForPC: address) ifNotNil:
  [:label| aStream nextPutAll: label; nextPut: $:; cr].
  (labelDictionary at: address ifAbsent: []) ifNotNil:
  [:label|
  self printLabel: label on: aStream at: address for: aSymbolManager.
  label isArray ifTrue:
  [string := nil.
  size := label third]].
  string ifNotNil:
  [aStream nextPutAll: (self decorateDisassembly: string for: aSymbolManager fromAddress: address).
+ (string includesSubstring: ': ldr ') ifTrue:"i.e. colon space 'ldr' tab"
- (string includesSubString: ': ldr ') ifTrue:"i.e. colon space 'ldr' tab"
  [(index := string indexOfSubCollection: ' [pc, #' startingAt: 1) > 0
  ifTrue:
  [offset := Integer readFrom: (ReadStream on: string from: index + 7 to: (string indexOf: $] startingAt: index + 7) - 1)]
  ifFalse:
  [(string indexOfSubCollection: ' [pc]' startingAt: 1) > 0 ifTrue:
  [offset := 0]].
  offset ifNotNil:
  [offset := address + 8 + offset.
  labelDictionary
  at: offset
  ifPresent:
  [:entry|
  entry isString
  ifTrue: [labelDictionary at: offset put: {#literal. offset. 4. entry}]
  ifFalse: [self assert: (entry isArray and: [entry first == #literal])]]
  ifAbsentPut: [{#literal. offset. 4}]]]].
  aStream cr; flush.
  address := address + size]
  valueWithArguments: (self
  primitiveDisassembleAt: address
  inMemory: memory)].
  (labelDictionary at: address ifAbsent: []) ifNotNil:
  [:label| self printLabel: label on: aStream at: address for: aSymbolManager]!